我正在使用以下define来根据构建环境灵活地设置我的安装脚本。使用平台属性构建WiX x86/x64
<?if $(var.Platform)=x64 ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?define win64Flag = "yes"?>
<?define TargetConfigurationPath = "bin\x64\Release"?>
<?else ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?define win64Flag = "no"?>
<?define TargetConfigurationPath = "bin\x86\Release"?>
<?endif ?>
详细介绍了我在组件的每个Win64属性中使用的win64Flag变量。我也在软件包“平台”属性中使用平台。 但要获得回Win64的属性,我使用的变量是这样的:
Win64="$(var.win64Flag)"
,我总是得到一个警告信息,告诉我说,在YesNoType属性使用这种说法是无效的。
我建设使用candle.exe与此调用这些东西:
candle.exe -ext WixUtilExtension -dPlatform=x86 "Deployment\WiX Setup Project\SetupScript.wxs" -out "Deployment\TempBuildOutput\SetupScript x86.wixobj"
light.exe -ext WixUIExtension -ext WixUtilExtension "Deployment\TempBuildOutput\SetupScript x86.wixobj" -out "Deployment\TempBuildOutput\Installer_x86.msi"
我在剧本,如果安装完成后,其自动启动应用程序有一些CustomAction。这在x64版本上可以正常工作,但不适用于x86版本。 这就是为什么我认为Win64属性可能有问题,或者更好的方式,我如何使用它。
但根据我的想法,此代码必须正确,因为这些文件已安装到x64(Program Files)和x86(Program Files(x86))上的相应文件夹中。但我问自己,安装完成后我的应用程序没有启动的原因是什么。
我正在使用x64 Windows,这可能是导致无法启动我的x86自动启动应用程序的原因吗?
有没有办法解决我使用Win64属性的警告?