最简单的方法是使web.config转换为部署?

时间:2015-07-29 17:14:54

标签: c# asp.net web-config web.config-transform

任何人都有一个首选的方法来进行web.config转换?我很好奇其他人为此做了什么。我讨厌每次更新或重新发布时都不断更新web.config。

4 个答案:

答案 0 :(得分:1)

使用VS内置支持的最简单方法:

enter image description here

您拥有适用于您的构建版本的web.config版本(默认为Debug和Release)

在发布版本中,您可以定义转换在构建期间应用的内容。结果将是有效的web.config。

答案 1 :(得分:1)

查看慢速猎豹的nuget包:https://www.nuget.org/packages/SlowCheetah/这可以很好地满足您的需求。请注意,它仅适用于发布转换,切换到不同的配置以进行本地调试将不会产生任何影响。

答案 2 :(得分:1)

  1. 为要部署到
  2. 的每台服务器创建构建配置

    实施例

    -Dev Server" copy from debug" - -Prod Server Debug" copy from debug" - -Prod Server Release" copy from release" -

    然后右键单击您的web.config并选择"添加配置转换"

    您将获得上面添加的每个配置的新变换。

    现在为每个环境配置您的Web配置转换。

    现在,当您发布时,您只需选择配置" Dev,Prod Debug或Prod Release"并且它会消失,之后不需要更新它们。

    现在,应始终为本地环境配置基本web.config,因此如果在本地IIS中进行设置,则将使用web.config而不进行任何转换。您的转换应该将基本web.config中的本地设置转换为他们需要的。

答案 3 :(得分:1)

几年前,Scott Hanselman使用预构建事件和批处理文件提供了解决方案:

http://www.hanselman.com/blog/ManagingMultipleConfigurationFileEnvironmentsWithPreBuildEvents.aspx

基本上,您为每个构建维护一个单独的不同配置,并运行批处理脚本预构建以通过Web.Config进行复制。明显的缺点是,如果你有三十种不同的构建配置,你需要三十种不同的配置,但我发现它很适合你只有两三个配置的项目(比如爱好项目,或者你只会发布到内部服务器的工具) )。此外,很高兴知道如果您愿意,可以根据需要对构建过程进行额外控制。