我需要构建基于WIX的安装程序的两个品牌版本。版本之间的唯一区别是包含公司联系人详细信息的单个位图。我想保留一个WIX项目,这样我就可以维护更少的项目。我正在使用环境变量来改变将哪个位图插入到安装程序中
Source="$(env.CompanyName) contact.png"
这很好,但是我不能在VS2010中更改环境变量。 VS2010正在使用VS2010启动时设置的环境变量来编译WIX安装程序。我必须重新启动VS2010才能让它获取新的环境变量值。
我有36个嵌套项目,所以我不想在每个项目中设置构建变量 - 这就是我尝试使用环境变量的原因。
有谁知道如何更改当前VS2010实例使用的其中一个环境变量?或许还有更好的方法?
答案 0 :(得分:8)
我这样做,并在单个WiX项目中进行了更多的自定义。我为每个变体都有不同的项目配置。因此,我不是“调试”和“发布”,而是“Debug”,“East”和“West”。这仅适用于安装项目。代码项目仍然使用“Debug”和“Release”。 WiX编译器可以读取配置值。
<?if $(var.Configuration)="West"?>
<?define CompanyName="West Coast Office"?>
<?elif $(var.Configuration)="East"?>
<?define CompanyName="East Coast Office"?>
<?else?>
<?define CompanyName="Debugging purposes"?>
<?endif?>
Source="$(var.CompanyName) contact.png"
或者,您可以将其添加到安装项目的预处理器变量(项目属性,构建,常规),但同样,您将需要多个配置:
CompanyName=West Coast Office
在您的Product.wxs中:
Source="$(var.CompanyName) contact.png"
在Visual Studio中添加配置:
打开菜单构建,配置管理器......
创建解决方案配置
为其他办公室重复步骤2和3(例如 West )。
创建设置项目配置
对 West 重复步骤5和6。
删除设置项目的发布配置
选择发布并按删除,然后按是和关闭。
删除解决方案的发布配置
选择发布并按删除,然后按是和关闭。
将项目配置分配给解决方案配置
现在,当您选择每个解决方案配置时,您应该具有以下设置:
Solution Debug East West
------------------------------------------
Main Project Debug Release Release
Setup Project Debug East West
最后,进入安装项目的属性,确保东西配置的一切正确。记下输出文件夹。如果仍然是 bin \ Release ,则这两个配置将覆盖彼此的输出。分别将其设置为 bin \ East 和 bin \ West 。