我正在处理的项目涉及从配置文件中读取许多服务端点(url).由于列表非常大,我决定将它们保存在自定义配置文件中,以保持web.config干净小巧.我将自定义部分包含在我的网站中,如下所示:
我工作得很好.
但是在将项目部署到不同环境期间出现了转换问题.我有三个web.config文件:
Web.config文件
Web.Uat.config
Web.Release.config
转换web.config工作时,自定义配置文件的转换在部署时失败.
有没有办法在部署期间转换自定义配置文件?
默认情况下,Visual Studio仅转换web.config文件.
如果您需要为DEV,UAT,PROD等环境进行转换的自定义配置文件,请尝试
使用Visual Studio的自定义扩展,如SlowCheetah -用于配置转换预览功能的XML转换.
从Nuget SlowCheetah添加项目以提供构建转换.
一点点细节:
从扩展和更新中添加VS Extension SlowCheetah
右键单击myconfig.config并选择add transorm:
在每个定义的配置内插入您自己的转换规则:
希望它有所帮助
我将稍微介绍一下Andoni Ripoll Jarauta的答案。
我们面临着类似的问题。我想将连接字符串从web.config文件中拉出以限制合并冲突。我还想在发布时创建一个包含静态信息的“发布”配置。
...足够简单 创建一个自定义配置文件webdb.config,并更新web.config文件。
例如 web.config
wedbdb.config(转换需要xml version =“ 1.0”)
接下来添加webdb.config的转换文件
WebDB.Debug.config示例:
WebDB.Release.config示例:
接下来,我们需要添加一个构建后事件。这是通过简单地编辑CSPROJ文件创建的。
现在,当我在本地运行时,我将获得WebDB.Debug.config,并且在发布代码时,只需确保选择“ Release”作为配置源。在这两种情况下,构建时都会使用相应的文件更新WebDB.config文件。
注意:确保将“复制到输出目录”选项中的webdb.config,webdb.debug.config和webdb.release.config设置为“请勿复制”。
希望这可以帮助!