【发布时间】:2012-04-13 21:29:23
【问题描述】:
我正在使用以下定义来根据构建环境使我的设置脚本灵活。
<?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(程序文件)和 x86(程序文件(x86))上的适当文件夹中。但是我在问自己,安装完成后我的应用程序没有启动的原因是什么。
我正在使用 x64 Windows,这可能是无法启动我的 x86 自动启动应用程序的原因吗?
有没有办法解决我使用 Win64 属性的警告?
【问题讨论】:
标签: windows wix windows-installer wix3.5