当前位置: 移动技术网 > IT编程>开发语言>.net > C# 发布控制台应用程序 App.config自动替换

C# 发布控制台应用程序 App.config自动替换

2018年10月17日  | 移动技术网IT编程  | 我要评论

香港人是狗,zxv10 h608b 破解,琵琶鱼

在做项目的过程中,一般都有好几套环境,如dev环境,qa环境等,通常情况下,不同环境的某些配置文件值是不一样的,部署时手动修改的方式管理多套环境的配置文件是很累的,而且很容易出错,最好的方式是部署时根据选择的配置管理器自动生成不同的配置。

在新建的web 应用程序中,我们会看到web.config是下面这样的,而且发布时会自动选择web.release.config配置的值,具体可参考之前写的另一篇博客 《web.config 自动替换值》

但是其它类型的项目,比如控制台应用程序,部署时如何实现自动替换呢?

  1. 新建app.debug.config,app.release.config配置文件
  2. 在文件资源管理器中找到项目文件,用记事本软件(如notepad++)打开
  3. 添加propertygroup配置
    <propertygroup>
       <projectconfigfilename>app.config</projectconfigfilename>
    </propertygroup>
  4. 在itemgroup中找到app.debug.config和app.release.config,修改为如下
    <none include="app.config" />
    <none include="app.debug.config">
       <dependentupon>app.config</dependentupon>
    </none>
    <none include="app.release.config">
       <dependentupon>app.config</dependentupon>
    </none>
  5. 在最后一个import标签后添加如下标签(如编译不通过,注意修改路径,我本机装的是vs2017
    <import project="$(msbuildextensionspath)\microsoft\visualstudio\v15.0\web\microsoft.web.publishing.targets" />
  6. 在 import 标签后面添加 target 标签
    <target name="afterbuild">
       <transformxml source="@(appconfigwithtargetpath)" transform="$(projectconfigtransformfilename)" destination="@(appconfigwithtargetpath->'$(outdir)%(targetpath)')" />
     </target>
  7. 在visual studio 中打开项目,重新加载解决方案,会看到app.config和web 应用程序的web.config已经一样了

         

 接下来的使用方式就和web 应用程序里一样了,打开app.release.config,修改为如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:xdt="http://schemas.microsoft.com/xml-document-transform">
  <appsettings>
    <add key="environment" value="qa" xdt:transform="replace" xdt:locator="match(key)" />
  </appsettings>
</configuration>

 部署时,当选择release模式时,生成的配置如下:

<add key="environment" value="qa" />

 当选择debug模式时,生成的配置仍是app.config中的配置,如下:

<add key="environment" value="dev" />

 参考文章:1.在部署 c#项目时转换 app.config 配置文件

      2.web.config 自动替换值

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网