web.debug.config转换插入不会插入到web.config中

时间:2018-11-29 08:38:53

标签: xml asp.net-mvc web-config web.config-transform

也许我没有正确使用转换,只是在学习它,但是当我在调试模式下获取如下所示的键时,“ stripeApiKey”为空。 当我在调试模式下运行并将鼠标悬停在“ ConfigurationManager.AppSettings”上时,我可以看到缓存在内存中的所有键,但看不到!有趣!我在转换后的文件中看到了它,但是它没有加载到内存中。我在某处错过了一步吗?

string stripeApiKey = ConfigurationManager.AppSettings["StripeApiKey"];

在这里,我尝试从web.debug.config文件中插入“ StripeApiKey”

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
 <appSettings>
    <add key="StripeApiKey" value="sk_test_mytestkey123456" 
        xdt:Transform="Insert" 
        xdt:Locator="XPath(configuration/appSettings)" 
    />
 </appSettings>
</configuration>

在这里进入我的web.config文件

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <appSettings>
    </appSettings>
</configuration>

我也尝试过用replace进行操作,但是没有运气,所以就层次结构的位置而言,肯定有某些我所缺少的东西,该如何调试呢?

1 个答案:

答案 0 :(得分:1)

XDT转换在常规调试会话期间不执行。它们仅在您构建要部署的项目时发生。您应该将调试值放入Web.config文件中,并将其转换为Web.Release.config(或您拥有的任何其他构建配置)中的其他内容。使用xdt:Locator="Match(key)"而不是使用XPath,语法也会更容易。

或者,您可以使用SlowCheetah扩展名,该扩展名添加了执行转换的构建任务。这也将在调试会话中进行转换。