我开始使用WiX,并且在定制ExitDIalog时遇到了一些麻烦。在ExitDialog中调用自定义exe
起初我想:
我想创建一个设置为我的应用
设置后,我想提出两个选择:
启动应用程序( application.exe新安装)
启动可选的设置(我的应用程序需要安装一些驱动器根据用户的拍照)
可选的设置是一个.exe文件。它应该放置在setup.msi旁边,但不要复制到我的应用程序文件夹中。
我创建的目录:
<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="COMPAGNYFOLDER" Name="$(var.compagny)">
<Directory Id="INSTALLFOLDER" Name="$(var.product)">
<Directory Id="fr" Name="fr"/>
</Directory>
</Directory>
</Directory>
</Directory>
</Fragment>
我如何引用添加到我的.exe?我所做的:
<Component Id="ProductComponent" Guid="{2C26B191-6654-4405-8E78-F8B6EFEDC9FC}" Directory="INSTALLFOLDER">
<File Id="uEye64_47100_WHQLexe" Source="./Resources/uEye64_47100_WHQL.exe" KeyPath="yes" Checksum="yes" Compressed="no" Vital="no"/>
</Component>
但uEye64_47100_WHQL.exe
文件在INSTALLFOLDER复制(我不想),并设置混合与路径[应用] /斌/释放(不知道有)。在日志文件有:
Failed to open the file:C:\dev\MyApplication\main\SetupProject\bin\Release\MyCompagny\MyProduct\uEye64_47100_WHQL.exe for computing its hash. Error:3
我这样调用该.exe(这个文件需要提升权限)
<!-- Set checkbox for launch install uEye -->
<Property Id="WIXUI_EXITDIALOGUEYECHECKBOXTEXT" Value="Launch install uEye"/>
<CustomAction Id="SetExecUEye" FileKey="uEye64_47100_WHQLexe" ExeCommand="" Return="asyncNoWait" Impersonate="no" Execute="deferred"/>
<UI>
<UIRef Id="WixUI_Custom"/>
<Publish Dialog="MyExitDialog"
Control="Finish"
Event="DoAction"
Value="SetExecUEye">WIXUI_EXITDIALOGUEYECHECKBOX = 1 and NOT Installed</Publish>
</UI>
我应该如何定义我uEye64_47100_WHQL.exe
被称为安装后却没有复制在INSTALLFOLDER
?
您节省了我的一天!威克斯会让我疯狂。删除一个错误(ErrorCode 2762)和我的设置将完成。 –
是否可以将二进制文件设置为未压缩而不重要?我的setup.msi是4ko,optionnal.exe是150Mo。声明为'Binary'使得我的setup.msi为154Mo。至少我的设置必须在没有这个文件的情况下工作(只有复选框会出错) –