Visual Studio部署项目:根据构建配置的条件文件

时间:2012-09-17 05:52:48

标签: visual-studio-2008 setup-deployment conditional-compilation

我想知道是否有可能构建不同的安装程序,其中包含一个部署项目的不同文件,完全取决于构建配置(调试/发布)?

我想这样做是因为:

  1. 在调试阶段,我们想在测试机器上安装一些额外的调试文件(* .pdb)和二进制文件,这样如果出现任何问题,我们就可以知道发生了什么
  2. 在发布阶段,我们不希望用户拥有这些调试文件。我们不想让用户选择安装* pdb - 他们中的大多数都不知道这些文件的用途,而且它们的选项只会引起混淆
  3. 我目前面临的困难:

    1. 我尝试打开部署项目文件(* .vdproj),它与其他类型的项目(如CSharp)有很大不同。部署项目文件不是XML,我似乎写不出类似:。
    2. 我查看了Microsoft的网站:http://msdn.microsoft.com/en-us/library/cz6k1z02%28v=vs.80%29.aspx没有与构建配置相关的部署条件。
    3. 由于我想根据构建配置设置条件,我认为项目文件至少应该能够告诉当前所选配置是什么。但是,部署配置管理器非常简单 - 我只能更改输出,打包,压缩和安装URL。我似乎无法像其他类型的项目那样定义任何其他宏(例如CSharp)

1 个答案:

答案 0 :(得分:0)

为了加上我的两分钱,我在WPF项目中有类似的需求。我有不同的.config文件,用于在输出文件夹/ bin /

中正确生成的不同构建配置(Debug,QA和Release)

我注意到Primary输出的输出文件从正确的配置文件夹(即/ bin / Release)列出了我的.exe文件,但.config文件来自项目的根目录(App.config),然后重命名为我的项目名称。

所以,为了解决这个问题,我:

  1. 创建了一个构建后事件,将我的生成器.config文件复制到名为ConfigDeploy的文件夹中。

    COPY / Y $(TargetDir)$(TargetFileName)。config $(SolutionDir)ConfigDeploy \ $(TargetFileName).config

  2. 右键单击我的主输出项,转到属性并在“ExcludeFilter”中设置“* .config”过滤器

  3. ,从主输出中忽略我的.config文件

    enter image description here

    1. 在“Program Files Folder / MyApplication”中为我的.config文件创建了一个文件条目,指向ConfigDeploy文件夹中的文件
    2. 至于.pdb文件,它更直接。您只需添加一个项目输出并选择Debug Symbols然后指向您需要的配置

      enter image description here