如何在Visual Studio中为自定义配置文件添加配置转换?

我正在处理的项目涉及从配置文件中读取许多服务端点(url)。 由于列表非常大,我决定将它们保存在自定义配置文件中,以保持web.config干净小巧。 我将自定义部分包含在我的网站中,如下所示:

 

我工作得很好。

但是在将项目部署到不同环境期间出现了转换问题。 我有三个web.config文件:

Web.config文件

Web.Uat.config

Web.Release.config

转换web.config工作时,自定义配置文件的转换在部署时失败。

有没有办法在部署期间转换自定义配置文件?

默认情况下,Visual Studio仅转换web.config文件。

如果您需要为DEV,UAT,PROD等环境进行转换的自定义配置文件,请尝试

  1. 使用Visual Studio的自定义扩展,如SlowCheetah -用于配置转换预览function的XML转换 。
  2. 从Nuget SlowCheetah添加项目以提供构建转换。

一点点细节:

从扩展和更新中添加VS Extension SlowCheetah 扩展和更新的屏幕

右键单击myconfig.config并选择add transorm: 扩展和更新的屏幕

在每个定义的配置中插入您自己的转换规则:

      

希望它有所帮助

我将继续介绍Andoni Ripoll Jarauta的答案。

我们遇到了类似的问题。 我想从web.config文件中提取连接字符串以限制合并冲突。 我还想在发布时创建一个包含静态信息的“发布”配置。

……够简单 创建自定义配置文件webdb.config,并更新web.config文件。

防爆。 web.config中

  

wedbdb.config(转换需要xml版本=“1.0”)

    

接下来为webdb.config添加转换文件

在此处输入图像描述

WebDB.Debug.config示例:

      

WebDB.Release.config示例:

      

接下来我们需要添加一个after-build事件。 这是通过简单地编辑CSPROJ文件来创建的。

     

现在,当我在本地运行时,我将获得WebDB.Debug.config,当我发布我的代码时,我只需要确保选择“Release”作为配置源。 在这两种情况下,构建时都会使用相应的文件更新WebDB.config文件。

注意:确保将“dbdb.config”,“webdb.debug.config”和“webdb.release.config”设置为“不复制”以显示“复制到输出目录”选项。

希望这可以帮助!

我一直在使用SlowCheetah,但我发现了一些我认为更优雅的东西。 只是告诉构建生成.config,具体取决于构建配置。

在项目中有app.Release.config(或者根据你的部署需要还有更多)你只需要编辑项目文件(如果用C#编程,则为.csproj)。 在最后一个之间找到它的结尾并添加:

       $(OutputType) dll dll exe     

从VisualStudio保存并重新加载。 在Release模式下编译并检查.config文件中的bin / Release文件夹,完成转换。

此示例适用于Exe和Dll文件以及任何VisualStudio版本,因为包含此post帮助