c# - C# 控制台应用程序的 App.config 文件的 Web.config 样式转换?

标签 c# msbuild web-config app-config web-config-transform

我的团队非常喜欢发布配置文件。我们在许多测试环境中工作,使用 Web.config 转换我们能够替换每个环境中的机器名称、配置设置等,这使我们的构建/部署/测试过程更加容易。

例如:

Web.config
    Web.dev.config
    Web.int.config
    Web.prod.config

但是,我们有许多测试应用程序可用于访问我们的 Web 服务,这些应用程序作为控制台应用程序实现。我们希望能够对这些配置文件执行相同类型的转换,这样我们就可以减少与手动编辑配置文件相关的人工测试工作。

本质上,我们想要这样:

App.config
    App.dev.config
    App.int.config
    App.prod.config

我对这些配置转换的理解是它们与我们网络项目中相应的发布配置文件相关:

Properties
    PublishProfiles
        dev.pubxml
        int.pubxml
        prod.pubxml

我试图将类似的文件添加到我们的控制台应用程序项目中,但我怀疑它是网络发布 MSBuild 目标中实际使用它们的东西。

有没有办法专门挂接到构建的这一部分,以便我们可以转换非网络配置?

最佳答案

将多个 app.configs 添加到控制台应用程序:

我使用的是 visual studio 2013。在这个版本中,我们没有配置转换。请安装 configuration transformation extension .

首先在解决方案配置中添加环境。右键单击 App.config 文件。单击添加配置转换。它添加了与解决方案配置一样多的内容。

App.config 中:

<appSettings>
    <add key="key" value="some value" />   
</appSettings>

将此代码复制到 App.Release.Config 中:

<appSettings>
    <add key="same key which you have given in app.config" value="some new value" xdt:Transform="Replace" xdt:Locator="Match(key)" />   
 </appSettings>

最后,构建解决方案。

关于c# - C# 控制台应用程序的 App.config 文件的 Web.config 样式转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19456208/

相关文章:

c# - 数据 GridView 中的数据不会直观地显示 C# SQL

C# 系统.InvalidOperationException : Collection was modified; enumeration operation may not execute

android - MSBuild 在 xml 文件中搜索并替换

msbuild - 在自定义目标中计算的编译器附加选项

build - 如何在 VSTS/VSO Build vNext 中创建 Web 部署包?

reactjs - 如何在 webpack 配置文件中启用 babel stage-0

c# - global.asax的使用方法和作用域(用于应用程序结束后的文件清理)

c# - Linq动态在哪里算?

asp.net - 在ASP.NET MVC项目中启用错误页面时查看未找到的错误

asp.net - Web.Config 中的 HTTPHandler 标记破坏了 asmx 文件