更改WIX的VS2010环境变量

时间:2011-11-30 00:57:36

标签: visual-studio-2010 wix

我需要构建基于WIX的安装程序的两个品牌版本。版本之间的唯一区别是包含公司联系人详细信息的单个位图。我想保留一个WIX项目,这样我就可以维护更少的项目。我正在使用环境变量来改变将哪个位图插入到安装程序中

Source="$(env.CompanyName) contact.png"

这很好,但是我不能在VS2010中更改环境变量。 VS2010正在使用VS2010启动时设置的环境变量来编译WIX安装程序。我必须重新启动VS2010才能让它获取新的环境变量值。

我有36个嵌套项目,所以我不想在每个项目中设置构建变量 - 这就是我尝试使用环境变量的原因。

有谁知道如何更改当前VS2010实例使用的其中一个环境变量?或许还有更好的方法?

1 个答案:

答案 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中添加配置:

  1. 打开菜单构建,配置管理器......

    创建解决方案配置

  2. 有效的解决方案配置下,选择&lt;新...&gt;
  3. 键入名称(例如),从发布复制设置,创建新项目配置。
  4. 为其他办公室重复步骤2和3(例如 West )。

    创建设置项目配置

  5. 在设置项目旁边,打开配置下拉菜单,然后选择&lt; New ...&gt;
  6. 键入名称,从发布复制设置,创建新项目配置。
  7. West 重复步骤5和6。

    删除设置项目的发布配置

  8. 在设置项目旁边,打开配置下拉菜单,然后选择&lt;编辑...&gt;
  9. 选择发布并按删除,然后按关闭

    删除解决方案的发布配置

  10. 有效的解决方案配置下,选择&lt;编辑...&gt;
  11. 选择发布并按删除,然后按关闭

    将项目配置分配给解决方案配置

  12. 有效的解决方案配置下,选择 East
  13. 将设置项目的配置设置为,将其他所有项目的配置设置为发布。勾选每个项目旁边的构建(假设您需要所有项目。)
  14. West 重复步骤12和13。
  15. 现在,当您选择每个解决方案配置时,您应该具有以下设置:

    Solution       Debug    East     West
    ------------------------------------------
    Main Project   Debug    Release  Release
    Setup Project  Debug    East     West
    

    最后,进入安装项目的属性,确保东西配置的一切正确。记下输出文件夹。如果仍然是 bin \ Release ,则这两个配置将覆盖彼此的输出。分别将其设置为 bin \ East bin \ West