2013-06-30 19 views
5

Tôi đang tạo trình cài đặt WiX và tôi muốn cho phép người dùng chọn đường dẫn của thư mục cài đặt cũng như thư mục dữ liệu. Tôi đã thêm hai InstallDirDlg vào mã của tôi và đặt tên là Custom_Dir và một Custom_DirData khác.Hai hộp thoại PathEdit trong một MSI (lỗi 2343 - Đường dẫn được chỉ định trống)

Trong Custom_DirData, thay vì sử dụng thuộc tính WIXUI_INSTALLDIR, tôi sử dụng thuộc tính DATALOCATION, được đặt ở đầu quá trình cài đặt trong ứng dụng tìm kiếm.

Khi tôi chạy msi, Custom_Dir hoạt động tốt. Tuy nhiên, khi tôi nhận được hộp thoại Custom_DirData, ngay sau khi tôi bấm duyệt hoặc tiếp theo, một thông báo lỗi 2343 bật lên.

Đây là những gì nó nói trong nhật ký:

DEBUG: Error 2343: Specified path is empty. 

tôi có thể thấy các đặc tính này được thiết lập trước đó vào trong file log:

PROPERTY CHANGE: Adding DATALOCATION property. Its value is 'C:\Remindex Local Data\'. 

PROPERTY CHANGE: Adding _BrowseProperty property. Its value is 'C:\Remindex Local Data\'. 

Vì vậy, tôi không hoàn toàn chắc chắn những gì con đường nó đang nói về. Chỉ trong trường hợp bạn cần một số thông tin thêm, đây là ba hộp thoại có liên quan trong các mã giao diện người dùng:

<Publish Dialog="Custom_Dir" Control="Back" Event="NewDialog" Value="Custom_Setup">1</Publish> 
<Publish Dialog="Custom_Dir" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish> 
<Publish Dialog="Custom_Dir" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish> 
<Publish Dialog="Custom_Dir" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish> 
<Publish Dialog="Custom_Dir" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4"><![CDATA[(WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1") AND WixUI_InstallMode = "InstallRemote"]]></Publish> 
<Publish Dialog="Custom_Dir" Control="Next" Event="NewDialog" Value="Custom_DirData" Order="5"><![CDATA[(WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1") AND WixUI_InstallMode = "InstallServer"]]></Publish> 
<Publish Dialog="Custom_Dir" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish> 
<Publish Dialog="Custom_Dir" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish> 

<Publish Dialog="Custom_DirData" Control="Back" Event="NewDialog" Value="Custom_Dir">1</Publish> 
<Publish Dialog="Custom_DirData" Control="Next" Event="SetTargetPath" Value="[DATALOCATION]" Order="1">1</Publish> 
<Publish Dialog="Custom_DirData" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish> 
<Publish Dialog="Custom_DirData" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish> 
<Publish Dialog="Custom_DirData" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish> 
<Publish Dialog="Custom_DirData" Control="ChangeFolder" Property="_BrowseProperty" Value="[DATALOCATION]" Order="1">1</Publish> 
<Publish Dialog="Custom_DirData" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish> 

<Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="3">1</Publish> 
<Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4"><![CDATA[WIXUI_INSTALLDIR_VALID<>"1"]]></Publish> 

Bất kỳ lời đề nghị sẽ được đánh giá rất nhiều.

Trả lời

4

Sự cố của tôi là dấu ngoặc xung quanh thuộc tính [DATALOCATION] của tôi. Đây là hình thức trông giống như sau:

<Publish Dialog="Custom_DirData" Control="Back" Event="NewDialog" Value="Custom_Dir">1</Publish> 
<Publish Dialog="Custom_DirData" Control="Next" Event="SetTargetPath" Value="DATALOCATION" Order="1">1</Publish> 
<Publish Dialog="Custom_DirData" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish> 
<Publish Dialog="Custom_DirData" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish> 
<Publish Dialog="Custom_DirData" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish> 
<Publish Dialog="Custom_DirData" Control="ChangeFolder" Property="_BrowseProperty" Value="DATALOCATION" Order="1">1</Publish> 
<Publish Dialog="Custom_DirData" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish> 
Các vấn đề liên quan