asp.net - 在 VS 2012 中使用 Web Deploy 指定不同的 appSettings

标签 asp.net visual-studio-2012 webdeploy

我最近开始在服务器和 Visual Studio 2012 上使用带有 IIS 7 的 Web 部署。我的项目是一个 ASP.Net MVC 3 Web 应用程序。

我已经正确设置了所有内容并且发布工作正常,并且我获得了所需的连接字符串转换,以便目标服务器可以访问正确的数据库。

但是,有几个 appSettings需要在服务器上不同于用于在本地机器上开发的值。

假设对于这个示例,我有一个开发 web.config ,其中包含以下内容:

<appSettings>
    <add key="CommonName" value="AlwaysTheSame" />
    <add key="VariableName" value="LocalValue" />
<appSettings>

当它发布时,我希望它在服务器上如下所示:
<appSettings>
    <add key="CommonName" value="AlwaysTheSame" />
    <add key="VariableName" value="ServerValue" />
<appSettings>

我想我需要更改 .pubxml 中的某些内容在 Properties > PublishProfiles 中找到的文件文件夹,因为这似乎是连接字符串的更改方式。但是,我没有找到有关如何修改此文件以满足我的需要的任何有用信息。我需要做哪些改变?

最佳答案

您可以使用配置转换,它允许您针对不同环境拥有多个版本的配置文件:

enter image description here

然后在发布时,您选择您的环境,这将使用特定于环境的配置覆盖 web.config。

为了在不同的部署类型中保持一个值一致,您可以将其存储在主 web.config 中。 ,并将其他存储在 web.live.config 中等等。

有关配置转换的更多信息,请阅读 Vishal R. Joshi 的这篇精彩博文:

http://blogs.msdn.com/b/webdev/archive/2009/05/04/web-deployment-web-config-transformation.aspx

关于asp.net - 在 VS 2012 中使用 Web Deploy 指定不同的 appSettings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13266861/

相关文章:

c# - ASP 单选按钮 oncheckedchange 未触发

visual-studio - Visual Studio 2010 发布/网络部署问题

asp.net - 无法打开数据库,因为它的版本是 706。 (ASP.net)

asp.net - 链接页面的弹出缩略图

php - 客户端处理与服务器端处理,哪个快?

c# - 如何跨 MVC 站点共享通用样式信息(css、图像等)?

c++ - SWIG、Python 和 Visual Studio 2012 的内存泄漏

visual-studio-2010 - 从 VS 2010 转换为 VS 2012 的项目中缺少 vcxproj.filters 文件

msdeploy - 将参数传递给 msdeploy runco​​mmand 中的批处理文件

asp.net - 无法获取我的EC2 Windows Server 2008(Web堆栈)实例来接收我的网站的发布