Web.config 转换:未声明转换属性
Posted
技术标签:
【中文标题】Web.config 转换:未声明转换属性【英文标题】:Web.config Transformation: Transform attribute is not declared 【发布时间】:2017-05-31 20:57:52 【问题描述】:我正在尝试转换我的 Web.config 文件以添加用于发布版本的重写规则,但我收到了一个智能感知错误。
“http://schemas.microsoft.com/XML-Document-Transform:Transform”属性未声明。
Web.Release.config
似乎编译没问题。但是当我尝试发布时,我确实得到了构建错误:
源文档中没有元素匹配“/configuration/system.webServer/rewrite” 'http://schemas.microsoft.com/XML-Document-Transform:Transform' 属性未声明。
上面的第一行是错误,而第二行是警告。为什么这不起作用?
请注意,我的 Web.config 的顶部确实包含 <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
更新:
部署时的构建错误原来是由其他原因引起的。所以,事实上,它确实构建得很好,我可以部署。所以在这一点上,问题就是为什么会出现这个 Intellisense 错误/警告。
【问题讨论】:
您在尝试<add xdt:Transform="RemoveAll" />
之前是否尝试过rewrite
?否则转到XML menu
选择schemas
并找到DotNetConfig.xsd
并选择使用此模式。如果这仍然不起作用,您还可以尝试选择 RazorCustomSchema.xsd
和 EntityFrameworkConfig_6_1_0.xsd
模式。如果现在不起作用,请在配置中将链接设置为:xmlns="http://schemas.microsoft.com/XML-Document-Transform"
。此外,如果您在浏览器中使用该链接,您可以看到 The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
嗨@乔纳森。恐怕我没有答案,但似乎这个问题以前曾被问过。 ***.com/questions/24059257/…
您也可以尝试将<configSections>
添加到configuration
和<connectionStrings>
似乎是 Intellisense 的一个缺陷。见***.com/questions/24059257/…
@Jonathan Wood:对我来说它无法发布(VS2019)。我收到“未定义命名空间前缀 xdt”,您是如何解决的?
【参考方案1】:
正如How do I enable IntelliSense in VS 2013 for <rewrite> in transform .config? 中所建议的,这是 Intellisense 中的一个缺陷。如果您使用的是 VS 2017,请打开“C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Xml\Schemas\1033\DotNetConfig.xsd”。找到文件末尾附近的 rewrite 元素并将<xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict"/>
复制到 rewrite 元素的末尾。
保存文件后,Visual Studio 立即删除了警告。
应该有人向 Visual Studio 团队提出这个问题。
【讨论】:
我已经通过 Visual Studio 反馈提出了这个问题。 developercommunity.visualstudio.com/content/problem/67412/… 这似乎仍然在 VS 2019 中发生,但修复并没有解决它。 @Neo:你能解决上述问题吗? @user527614 不记得了,但我已经有一段时间没有使用 Web.config 文件了。以上是关于Web.config 转换:未声明转换属性的主要内容,如果未能解决你的问题,请参考以下文章
Web.Config 将单个 AppSettings 转换为 ConfigSource
microsoft.identityModel 上的 Web 配置转换 - 未声明“http://schemas.microsoft.com/XML-Document-Transform”属性