如何从Web.config中获取键的转换值

本文关键字:转换 获取 Web config | 更新日期: 2023-09-27 18:22:05

我的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"];

当我以"Release"的身份运行应用程序时,如何确保获得正确的Release版本的密钥?

如何从Web.config中获取键的转换值

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

基本原理是适用于不同环境的转换。基本web.config文件表示本地(dev)环境,而.release转换将适用于prod(或类似prod)环境。

如果您只想看到转换的实际操作,运行它们的一种简单方法是通过命令行XDT工具https://ctt.codeplex.com/