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

时间:2014-06-05 11:40:32

标签: visual-studio-2013 xsd web-config .net-4.5 web-config-transform

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

智能感知并不喜欢这个决定而且不会打球,因为:

  

xdt:未声明转换&#34;属性&#34;

表示<rewrite>元素。

我查看了RuslanY's solution here,我在这个网站上考虑了几个解决方案,但是没有一个解决方案在VS 2013中使用.NET v4.5提供了解决这个特定问题的方法。我还研究了this old MSDN post here并确保Web.config的Schemas属性,Web.Staging.config和Web.Release.config指向正确的转换模式版本。

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

<xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict"/>

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

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

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

1 个答案:

答案 0 :(得分:0)

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

func testStringLastIndexOf() {
    let lastIndex = "0|2|45|7|9".lastIndexOf("|")

    XCTAssertEqual(lastIndex, 8)
}

func testStringLastIndexOfNotFound() {
    let lastIndex = "0123456789".lastIndexOf("|")

    XCTAssertEqual(lastIndex, nil);
}

到每个<xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict"/> 元素(以及<xs:complexType>标记本身)中的每个<xs:element name="rewrite">的末尾,以使它们与其他元素一致具有良好的智能感知。