我的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"];
当我将应用程序作为“发布”运行时,如何确保获得正确的发布版本的密钥?
答案 0 :(得分:3)
直接在Visual Studio中运行时不会应用转换 - 您至少需要先在某处(即使是本地)部署。
理论基础是适用于不同环境的变换。基本web.config文件表示本地(dev)环境,而.release
转换适用于prod(或prod-like)环境。
如果您只想查看转换的实际操作,可以通过https://ctt.codeplex.com/
提供的命令行XDT工具轻松运行转换。