【发布时间】:2016-09-13 19:51:27
【问题描述】:
我有一个带有 wix 设置的 C# 应用程序。我已经定制了ExitDialog,带有2个复选框(在this之后),用于运行我的应用程序,另一个用于运行可选安装(用于uEye相机)。
第一个复选框是:
<!-- Set checkbox for launch my application -->
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch $(var.product)"/>
<CustomAction Id="SetExecVR3" Property="WixShellExecTarget" Value="[#MyApplication.exe]"/>
<CustomAction Id="DoExec" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" Return ="ignore"/>
第二个:
<!-- Set checkbox for launch install uEye -->
<Property Id="WIXUI_EXITDIALOGUEYECHECKBOXTEXT" Value="Launch install uEye"/>
<CustomAction Id="SetExecUEye" Property="WixShellExecTarget" Value="./Resources/uEye64_47100_WHQL.exe"/>
还有我的 Wix UI(this 帮助了我):
<UI>
<UIRef Id="WixUI_Custom"/>
<Publish Dialog="MyExitDialog"
Control="Finish"
Event="DoAction"
Value="SetExecVR3">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<Publish Dialog="MyExitDialog"
Control="Finish"
Event="DoAction"
Value="DoExec">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<Publish Dialog="MyExitDialog"
Control="Finish"
Event="DoAction"
Value="SetExecUEye">WIXUI_EXITDIALOGUEYECHECKBOX = 1 and NOT Installed</Publish>
<Publish Dialog="MyExitDialog"
Control="Finish"
Event="DoAction"
Value="DoExec">WIXUI_EXITDIALOGUEYECHECKBOX = 1 and NOT Installed</Publish>
</UI>
这是我的设置:
MyApplication.exe 的复选框运行良好,而另一个则没有。一代没有在本地目录中复制uEye64_47100_WHQL.exe,当我检查选项时没有附加任何内容。
我从 WiX 开始,我错过了什么?
编辑:
现在我有一个带有.exe 的组件。该文件已复制,但我无法运行它。使用 msiexec 登录我有:
MSI (c) (C4:B8) [12:45:35:109]: 注意: 1: 2228 2: 3: 错误 4: SELECT
MessageFROMErrorWHEREError= 1721 信息 1721。此 Windows 安装程序包有问题。无法运行完成此安装所需的程序。请联系您的支持人员或软件包供应商。动作:SetExecUEye,位置:C:\uEye64_47100_WHQL.exe,命令:
不明白这个错误,也不知道为什么文件在C:\(我用SourceDir定位)
编辑2:
创建的组件:
<Component Id="uEye64_47100_WHQLexe" Directory="TARGETDIR" Guid="{1BD47632-42D5-4C56-B207-1E6B1005488C}">
<File Id="uEye64_47100_WHQLexe" Source="./Resources/uEye64_47100_WHQL.exe" KeyPath="yes" Checksum="yes" Compressed="no" Vital="no"/>
</Component>
还有目录:
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="$(var.compagny)"/>
</Directory>
<Directory Id="DesktopFolder" SourceName="Desktop"/>
<Directory Id="ProgramFilesFolder">
<Directory Id="PRODUCTFOLDER" Name="$(var.compagny)">
<Directory Id="INSTALLFOLDER" Name="$(var.product)">
<Directory Id="fr" Name="fr"/>
</Directory>
</Directory>
</Directory>
</Directory>
</Fragment>
如何定义 uEye64_47100_WHQLexe 仅在我的发布文件夹中复制? TARGETDIR 设置为 C:\
【问题讨论】: