如何在VS 2013中为transform .config中的<rewrite>启用IntelliSense?

luk*_*kea 6 xsd web-config web-config-transform .net-4.5 visual-studio-2013

我决定将一些重写规则移到web.release.config和web.staging.config文件中,以保持重写规则与我们运行不同配置的环境相关.

IntelliSense不喜欢这个决定,也不会打球,因为:

xdt:转换"属性未声明"

对于<rewrite>元素.

我在这里查看了RuslanY的解决方案,我在这个网站上考虑了几个解决方案,但是他们都没有在使用.NET v4.5的VS 2013中为这个特定问题提供解决方案.我还在这里研究了这篇旧的MSDN帖子,并确保Web.config,Web.Staging.config和Web.Release.config的Schemas属性指向正确的转换模式版本.

似乎唯一的解决方案是编辑DotNetConfig [v] .xsd文件并添加

<xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict"/>
Run Code Online (Sandbox Code Playgroud)

<xs:complexType>在每个<xs:element name="rewrite">元素(和<xs:element name="rewrite">标记本身)中的每个元素的末尾,使它们与具有良好IntelliSense的其他元素一致.

在这种情况下,这是正确的解决方案(因为这些条目尚未存在似乎很奇怪)?有没有更好的方法将这些条目添加到xsd文件中,以便它们不会在VS更新中丢失(因此它们将更容易应用于VS安装)?

或者我应该部署另一种解决方案吗?

luk*_*kea 0

正如我在问题中所说:似乎唯一的解决方案是编辑 DotNetConfig[v].xsd 文件并添加

<xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict"/>
Run Code Online (Sandbox Code Playgroud)

<xs:complexType>到每个 的<xs:element name="rewrite">元素(以及的标记本身)的末尾<xs:element name="rewrite">,以使它们与具有良好 IntelliSense 的其他元素保持一致。