xml - web.debug.config 转换插入不会插入到 web.config
问题描述
也许我没有正确使用转换,我只是在学习它,但是当我获取如下所示的密钥时,在调试模式下运行时,“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>
我也尝试过替换,但没有运气,所以在层次结构的位置或其他方面一定有一些我遗漏的东西,我该如何调试呢?
解决方案
XDT 转换不会在正常调试会话期间执行。它们仅在您构建项目以进行部署时发生。您应该将调试值放在 Web.config 文件中,并将它们转换为 Web.Release.config 中的其他内容(或您拥有的任何其他构建配置)。xdt:Locator="Match(key)"
使用, 而不是使用 XPath,语法也会更容易。
或者,您可以使用SlowCheetah扩展,它添加了一个执行转换的构建任务。这也将在调试会话中进行转换。
推荐阅读
- amazon-web-services - 无效的模板属性或属性 [ElasticacheCluster]
- typescript - 如何为有条件推断的条件类型保留可变参数类型顺序?
- mongodb - Atlas 免费层 (M0) 集群上是否提供触发器?
- python - Python - 从 excel 中查找单个单元格中的多个单词,并使用 pandas 将相应的数据添加到 JSON
- c# - WinForms BindingComplete 由另一个属性触发
- haskell - 如何在 Hedis haskell pubSub 中发布
- azure-cloud-services - 在 Azure 云服务上启用 TLS 1.3
- tinymce - 已创建按钮后如何动态更改工具栏按钮图标?(TinyMCE 5.x)
- r - 如何修复“闭包不可子集”。
- reactjs - React 测试库不渲染 Emotion CSS