如何从Web.config获取密钥的转换值

时间:2015-11-14 20:17:14

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

我的Web.config文件中有以下密钥:

<appSettings>
    <add key="ImageBucketName" value="dev" />
</appSettings>

我在Web.Release.Config文件中进行了以下转换:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <appSettings>
    <add key="ImageBucketName" value="live" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
  </appSettings>
</configuration>

但是,当我从Visual Studio 2013运行我的应用程序并尝试从我的控制器检索密钥的值时,我总是得到密钥的非转换版本。

// Get the AWS bucket name from the config file
var imageBucketName = ConfigurationManager.AppSettings["ImageBucketName"];

与以下相同的结果:

// Get the AWS bucket name from the config file
var imageBucketName = WebConfigurationManager.AppSettings["ImageBucketName"];

当我将应用程序作为“发布”运行时,如何确保获得正确的发布版本的密钥?

1 个答案:

答案 0 :(得分:3)

直接在Visual Studio中运行时不会应用转换 - 您至少需要先在某处(即使是本地)部署。

理论基础是适用于不同环境的变换。基本web.config文件表示本地(dev)环境,而.release转换适用于prod(或prod-like)环境。

如果您只想查看转换的实际操作,可以通过https://ctt.codeplex.com/

提供的命令行XDT工具轻松运行转换。