【问题标题】:Is it possible to link Web.config transform with publishing profile?是否可以将 Web.config 转换与发布配置文件链接?
【发布时间】:2011-03-06 12:00:56
【问题描述】:

目前我可以根据构建配置轻松设置 Web.config 转换,例如将connectionString=server;.. 用于Debug,将connectionString=./SQLExpress;.. 用于Release

但是是否可以基于 web 发布配置文件进行一些 Web.config 转换? IE。将connectionString=server1;.. 用于配置文件Server1connectionString=server2;.. 用于Server2

【问题讨论】:

    标签: asp.net .net visual-studio-2010 web-config-transform msbuild-wpp


    【解决方案1】:

    我相信发布配置文件独立于构建配置文件,这有点可惜,因为您很容易意外地将调试配置部署到生产服务器。

    但是,如果您使用的是 MSDeploy,则可以在其中修改 web.config。详情请见MSDeploy - Changing Connection string parameter after deploying the package

    【讨论】:

      【解决方案2】:

      执行此操作的方法可能略有不同。

      在您的生产服务器上,在每台生产机器的 c:\windows\system32\drivers\etc\hosts 文件中为 customdb 创建一个虚拟条目。每一个都指向您希望该机器使用的数据库。然后你只需要指向 connectionString=customdb;适用于您的所有生产服务器。

      唯一的缺点是您需要访问主机文件,并且需要您使用数据库。

      希望对你有帮助

      【讨论】:

      • 有趣。然而,另一个缺点是您无法(轻松)对主机文件进行版本控制,因为它包含特定于机器的设置,并且它增加了部署过程的复杂性,需要对通常应该避免的系统路径进行写访问。
      【解决方案3】:

      我们将所有机器/配置文件特定的配置保存在单独的配置文件中,然后使用 configSource 像这样包含它们...

          <connectionStrings configSource="cstrings.config"/>
      

      这种方式 Web.config 是相同的,不需要任何转换。我们为连接字符串、smtp 设置和应用程序设置执行此操作。

      我们对 Web.config 和“机器特定”文件进行版本控制,例如 cstrings.config.production、cstrings.config.staging 等。

      一旦你有了这个结构,就很容易为不同的配置文件生成图像。我们在每台机器上都有部署脚本,它们读取环境变量并进行适当的部署。例如,staging server build 脚本将 cstrings.config.staging 复制到 cstrings.config 等。

      【讨论】:

      • 如何运行部署脚本来链接当前配置文件和适当的连接字符串?
      • @abatishcev:我们的构建服务器有测试、登台和生产目标。进行了干净的结帐(实际上是 svn 导出)。构建脚本“rename ${bin}/cstrings.config.${Destination} ${bin}/cstrings.config”然后我们运行单元测试、zip 和 ftp 部署到目标机器。每个目的地在版本控制中都有 cstrings、smtp 和 appsettings 配置文件。例如,cstrings.config.staging、smtp.config.staging、appsettings.config.staging。仅供参考:如果您非常注重安全性,可以将目标计算机上的 cstrings.config 作为只读文件保留。在我们的环境中这没什么大不了的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-19
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-30
      • 2012-01-15
      相关资源
      最近更新 更多