Visual studio 2008 Visual Studio部署项目:取决于生成配置的条件文件

Visual studio 2008 Visual Studio部署项目:取决于生成配置的条件文件,visual-studio-2008,setup-deployment,conditional-compilation,Visual Studio 2008,Setup Deployment,Conditional Compilation,我想知道是否可以为一个部署项目构建包含不同文件的不同安装程序,这完全取决于构建配置(调试/发布) 我想这样做是因为: 在调试阶段,我们希望在测试机上安装一些额外的调试文件(*.pdb)以及二进制文件,以便在出现任何错误时,我们可以知道发生了什么 在发布阶段,我们不希望用户拥有这些调试文件。我们不想让它成为用户安装*pdb的一个选项——他们中的大多数人不知道这些文件的用途,为他们提供的选项只会引起混乱 我目前面临的困难是: 我尝试打开部署项目文件(*.vdproj),它与其他类型的项目(如CSha

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

我想这样做是因为:

  • 在调试阶段,我们希望在测试机上安装一些额外的调试文件(*.pdb)以及二进制文件,以便在出现任何错误时,我们可以知道发生了什么
  • 在发布阶段,我们不希望用户拥有这些调试文件。我们不想让它成为用户安装*pdb的一个选项——他们中的大多数人不知道这些文件的用途,为他们提供的选项只会引起混乱
  • 我目前面临的困难是:

  • 我尝试打开部署项目文件(*.vdproj),它与其他类型的项目(如CSharp)有很大不同。部署项目文件不是XML,我似乎无法编写类似以下内容:
  • 我检查了Microsoft的站点:没有与生成配置相关的部署条件
  • 因为我想根据构建配置设置条件,所以我认为项目文件至少应该能够知道当前选择的配置是什么。但是,用于部署的配置管理器非常简单—我只能更改输出、打包、压缩和安装URL。我似乎无法像为其他类型的项目(例如CSharp)那样定义任何其他宏

  • 再加上我的两分钱,我在WPF项目中也有类似的需求。对于输出文件夹/bin中正确生成的不同构建配置(调试、QA和发布),我有不同的.config文件/

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

    因此,为了解决这个问题,我:

  • 创建了生成后事件以将我的generator.config文件复制到名为ConfigDeploy的文件夹

    复制/Y$(TargetDir)$(TargetFileName).config$(SolutionDir)ConfigDeploy\$(TargetFileName).config

  • 通过右键单击我的主输出项,转到属性并在“ExcludeFilter”中设置“*.config”筛选器,忽略主输出中的.config文件

  • 在“Program Files Folder/MyApplication”中为my.config文件创建了一个文件条目,该条目指向ConfigDeploy文件夹中的文件
  • 至于.pdb文件,它更简单。您只需要添加一个项目输出并选择调试符号,然后指向所需的配置


    你最终找到了怎么做吗?不,我不这么认为。。。我认为我当时使用的VisualStudio不可能做到这一点。如果我没记错的话,最接近的方法就是添加一个新环境(即“InstallPDB”或其他东西)。然后,您可以运行任意的DOS命令,而不是编译任何东西。我不确定新的Visual Studio,因为我不再使用Windows编程了。听起来不错。最后,我编写了一个节点脚本,该脚本作为项目的后期构建事件运行,并将配置传递给,然后有条件地将文件复制到安装程序获取它们的位置。效果很好。谢谢你的更新!