【发布时间】:2011-09-08 02:02:33
【问题描述】:
我希望在构建 32 位和 64 位安装程序时保持我的顶级 .wxs DRY。我正在使用蜡烛.exe 的 -arch 参数来控制正在构建的默认安装程序架构。
我现在遇到的问题是,32 位和 64 位 (ProgramFiles64Folder) 架构之间的 ProgramFilesFolder 似乎有所不同。这是我第一次尝试解决方法:
<?if $(sys.BUILDARCH)=x64 ?>
<Directory Id='ProgramFiles64Folder' Name='PFiles'>
<?else ?>
<Directory Id='ProgramFilesFolder' Name='PFiles'>
<?endif ?>
<Directory Id='the-rest' Name="Company Name">
...
我尝试了这个,但出现了错误。显然,在评估预处理器之前会触发 XML 验证。当我手动更改为使用 ProgramFiles64Folder 时,我的构建工作。
我试图沿着 DirectoryRef 路线走,但没有成功。关于在 .wxs 文件中不进行 sed 替换而使其正常工作的任何建议?
注意:我在 Wix 3.5 和 3.6 中尝试过这个。
【问题讨论】:
-
我使用这个答案中描述的技术:stackoverflow.com/questions/471424/wix-tricks-and-tips/…