5

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

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

网络配置:

<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

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

4

1 回答 1

0

我建议暂时忽略缓慢的猎豹,因为我认为您不需要它。我已经将它用于 Windows 窗体开发,但不需要进行 Web 开发。而是使用标准的一键式 Web 部署机制,并重新考虑如何使用配置转换。

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

  1. 然后,如果您有一个想要发布的实验室/测试/沙盒环境,以便为该环境创建解决方案和项目配置。

在 Configuration Manager 中添加新的解决方案配置

  1. 接下来右键单击 Web.config 并单击 Add Config Transform为您刚刚创建的解决方案配置添加配置转换。

添加配置转换

  1. 假设您添加了“沙盒”解决方案配置。如果是这种情况,则名为 Web.Sandbox.config 的新文件将出现在解决方案资源管理器中。继续并像这样更新 Web.config 和 Web.Sandbox.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 转换。

在“发布 Web”对话框中选择沙盒配置

于 2015-06-02T15:24:28.050 回答