一个MSI中的两个PathEdit对话框(错误2343 - 指定的路径为空)

时间:2013-06-30 21:51:45

标签: wix windows-installer wix3.7

我正在创建一个WiX安装程序,我想让用户选择安装目录的路径以及数据目录。我在我的代码中添加了两个InstallDirDlg,并命名为一个Custom_Dir和另一个Custom_DirData。

在Custom_DirData中,我使用DATALOCATION属性而不是使用WIXUI_INSTALLDIR属性,该属性在appsearch的安装开始时设置。

当我运行msi时,Custom_Dir工作正常。但是,当我进入Custom_DirData对话框时,只要我按下浏览或下一个,就会弹出2343错误消息。

这就是它在日志中所说的内容:

DEBUG: Error 2343:  Specified path is empty.

我可以在日志文件中看到之前设置的这些属性:

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

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

所以我不太确定它在说什么路。如果您需要一些额外的信息,这里有三个相关的UI对话框:

<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>

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:5)

我的问题是我的[DATALOCATION]属性的括号。这应该是它的样子:

<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>