【发布时间】:2010-09-25 21:48:51
【问题描述】:
我有三个自定义构建配置 { Dev、Qs、Prd }。所以,我有三个应用程序配置 { Dev.config、Qs.config、Prd.config }。我知道如何编辑 .csproj 文件以根据当前构建配置输出正确的文件。
<Target Name="AfterBuild">
<Delete Files="$(TargetDir)$(TargetFileName).config" />
<Copy SourceFiles="$(ProjectDir)$(Configuration).config" DestinationFiles="$(TargetDir)$(TargetFileName).config" />
</Target>
我的问题是,我需要 六个 构建配置 { Dev, Qs, Prd } x { Debug, Release }。我需要支持每个环境的调试和发布设置(优化、pdb 等)。但是,应用配置值在调试/发布之间不会发生变化。
如何使构建脚本尽可能通用并仅使用三个应用配置?我不想硬编码太多的条件字符串。
【问题讨论】:
-
“
”标签支持“条件”属性。我可以测试条件是否匹配“Dev_*”(如“Dev_Debug”或“Dev_Release”)以使用 Dev.config 文件吗? -
这是一个很好的hanselman.com/blog/… at scott Hanselmans,关于自动化多重配置。在 cmets 部分有一些替代解决方案。一些有趣的比如使用 delta of配置文件。其他一些就像为不同的环境提供不同的配置文件。
-
仅供未来读者参考:我尝试了上面的代码并且它有效,但不适用于使用 ClickOnce 进行部署。它只是不包括在内。因此,我从blogs.msdn.com/b/vsto/archive/2010/03/09/… 寻求解决方案,这与史蒂夫的回答相似。
标签: .net deployment configuration msbuild