我为我的应用程序创建了一个wix安装程序。 一切正常,除非我在下一个对话框中为机器上的所有用户选择安装,我选择了安装目录,我得到了错误。
单击“下一步”显示上面的错误
Windows安装程序提供以下详细信息 2727目录表中不存在目录条目“2”。
Product.wxs包含
<UI>
<UIRef Id="WixUI_ErrorProgressText" />
<UIRef Id="UISequence" />
</UI>
Wix文件
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<!--Adding dialogs-->
<UI Id="UISequence">
<Property Id="ApplicationFolderName" Value="AppName" />
<Property Id="WixAppFolder" Value="WixPerMachineFolder" />
<UIRef Id="WixUI_Advanced"/>
<Publish Dialog="ExitDialog"
Control="Finish"
Event="DoAction"
Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
</UI>
<!--Including License agreement-->
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
<!--<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />-->
<!--Exit Dialog-->
<Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="Thank you for installing this product." />
<!--Provide Launch Application Option-->
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch AppName" />
<Property Id="WixShellExecTarget" Value="[#AppExeName.exe]" />
<CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes"/>
</Fragment>
</Wix>
如果我不进步,一切正常。已为所有用户安装应用程序。
我到处查看,但没有发现这种情况正在发生。
请帮助,我在这里错过了什么。
答案 0 :(得分:2)
我使用 APPLICATIONFOLDER 修复了错误2727。
之前:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="CompanyFolder" Name="Company">
<Directory Id="InstallFolder" Name="MyProgram"/>
</Directory>
</Directory>
</Directory>
后:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="CompanyFolder" Name="Company">
<Directory Id="APPLICATIONFOLDER" Name="MyProgram"/>
</Directory>
</Directory>
</Directory>
答案 1 :(得分:1)
要查看实际错误,必须使用以下命令运行安装
msiexec /i SoftwareSetup.msi /L*V C:\logs\<logfilename>.log
在我的情况下,当我有2727而没有任何线索时,我使用上述命令运行了msi,并在日志中清楚地说明了
**错误2727是“目录条目'[XYZ]'在 目录表**
因此,存在用于目录XYZ的设置目标路径的发布事件,但在product.wxs的目录结构/条目中不。 所以我不得不删除不必要的set target path publish事件,一切正常。
但是要获得确切的故障是什么,请像我在第一句话中提到的那样,使用misexec
运行您的应用程序。
答案 2 :(得分:0)
增加: 这很奇怪,但在使用WIXUI时很可能:
<UI Id="MyWixUI_Mondo">
<UIRef Id="WixUI_Advanced" />
</UI>
是最佳选择:
<Property Id="ApplicationFolderName" Value="Company\MyProgram" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="APPLICATIONFOLDER" Name="Anything"/>
</Directory>
</Directory>
实际的WIXUI设置文件夹将是&#34; Program Files \ Company \ MyProgram&#34;,而不是&#34; Program Files \ Anything&#34;