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

6
我想知道是否有可能根据构建配置(Debug/Release)纯粹地构建不同的安装程序,以包含不同的文件到同一部署项目中?
我之所以这样做,是因为:
1. 在调试阶段,我们想要在测试机器上与二进制文件一起安装一些额外的调试文件(*.pdb),以便如果出现任何问题,我们能够知道发生了什么。
2. 在发布阶段,我们不希望用户拥有这些调试文件。而且,我们也不希望让用户选择安装*pdb - 大多数用户不知道这些文件的用途,给他们选择会导致混乱。
目前我面临的困难:
1. 我尝试打开部署项目文件(*.vdproj),它与其他类型的项目(如CSharp)非常不同。 部署项目文件不是XML格式的,我似乎无法编写这样的内容: 。
2. 我查看了Microsoft网站:http://msdn.microsoft.com/en-us/library/cz6k1z02%28v=vs.80%29.aspx 没有与构建配置相关的部署条件。
3. 由于我想根据构建配置设置条件,我认为项目文件至少应该能够告诉当前选择的配置是什么。然而,部署的配置管理器非常简单 - 我只能更改输出、打包、压缩和安装URL。我似乎无法像其他类型的项目(如CSharp)一样定义任何附加宏。

1
你最终找到了如何做到这一点吗? - JohnnyFun
1
不,我不这么认为... 我不认为在我当时使用的Visual Studio中可以实现这一点。如果我没记错的话,你能得到的最接近的东西就是添加一个新的环境(即“InstallPDB”或类似的名称)。然后,你可以运行任意的DOS命令,而不是编译任何东西。由于我不再在Windows上编程,所以对于新的Visual Studio我不确定。 - Steven Lai
1
好的。我最终编写了一个 Node 脚本,作为我的项目的后构建事件运行,并将配置传递给它,有条件地将文件复制到安装程序获取它们的位置。效果很好。不过还是谢谢你的更新! - JohnnyFun
1个回答

0

只是想补充一下,我在我的WPF项目中有类似的需求。我有不同的.config文件用于不同的构建配置(Debug、QA和Release),这些文件会正确地生成在输出文件夹/bin/中。

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

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

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

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

  2. 通过右键单击我的Primary output项,进入属性,并在“ExcludeFilter”中设置“*.config”过滤器,忽略了我的.config文件。

enter image description here

  1. 在“程序文件夹/我的应用程序”中创建了一个文件条目,该条目指向ConfigDeploy文件夹中的文件

至于.pdb文件,它更加直接。您只需要添加一个项目输出,选择调试符号,然后指向所需的配置即可。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接