web.debug.config转换不起作用

时间:2013-08-18 20:08:54

标签: visual-studio iis web.config-transform

我不知道我做错了什么,但我几乎觉得我已经尝试了一切。我似乎无法通过web.debug.config更改来获取我的项目的web.config。我在某处读到只有在发布时才进行转换。然后我读到SlowCheetah可以处理这个,所以我把它安装到我的项目中。它也没有任何区别。

运行VS 2012 Express。我使用VS安装的IIS Express本地服务器进行调试。我将Firefox作为浏览器运行。

的web.config:

<appSettings>
  <add key="SiteUrl" value="http://development.mysite.com/" />
</appSettings>

web.debug.config:

<appSettings>
  <add key="SiteUrl" value="http://localhost:4652/"
      xdt:Transform="SetAttributes"
      xdt:Locator="Match(key)" />
</appSettings>

我也尝试过使用替换:

<appSettings>
  <add key="SiteUrl" value="http://localhost:4652/"
      xdt:Transform="Replace"
      xdt:Locator="Match(key)" />
</appSettings>

在本地调试配置中运行时:

string siteurl = ConfigurationManager.AppSettings["SiteUrl"];

仍然导致siteurl为http://development.mysite.com/

我通过右键单击web.debug.config来运行预览转换,它显示转换完美,但不是我在本地运行Web应用程序时。

不得不承认,我没有看到如何配置SlowCheetah。我没有看到任何配置它的方法,我一直在想也许它本身就有“某些东西”。 :S

有谁知道如何克服这个问题,或者我可能做错了什么?

1 个答案:

答案 0 :(得分:0)

我建议暂时忽略缓慢的猎豹,因为我觉得你不需要它。我已将它用于Windows Forms开发,但不需要Web开发。而是使用标准的单击Web部署机制,并重新考虑如何使用配置转换。

基本上,只在发布时使用转换,并将本地开发设置放在主Web.config而不是转换中。

  1. 然后,如果您有实验室/测试/沙箱环境,则要发布到为该环境创建解决方案和项目配置
  2. Adding a new solution configuration in Configuration Manager

    1. 接下来右键单击Web.config并单击添加配置转换,为刚刚创建的解决方案配置添加配置转换。
    2. Adding a config transform

      1. 假设您添加了“沙盒”解决方案配置。如果是这种情况,那么名为Web.Sandbox.config的新文件将出现在解决方案资源管理器中。继续并更新Web.config和Web.Sandbox.config中的值,如此。
      2. 的Web.config:

        <appSettings>
          <add key="SiteUrl" value="http://localhost:4652/" />
        </appSettings>
        

        Web.Sandbox.config:

        <appSettings>
          <add key="SiteUrl" value="http://sandbox.mysite.com/"
              xdt:Transform="SetAttributes"
              xdt:Locator="Match(key)" />
        </appSettings>
        
        1. 最后,您需要创建一个“sandbox.mysite.com”(或者您的URL实际上是什么)发布配置文件,并确保其配置是Sandbox 以便Web.Sandbox.config在发布期间使用转换。
        2. Selecting the Sandbox Configuration in the Publish Web dialog