我正在尝试转换我的 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错误/警告。
答案 0 :(得分:12)
如How do I enable IntelliSense in VS 2013 for <rewrite> in transform .config?中所述,这是智能感知中的缺陷。如果你正在使用VS 2017打开“C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Xml \ Schemas \ 1033 \ DotNetConfig.xsd”。在文件末尾附近找到重写元素,并将<xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict"/>
复制到重写元素的末尾。
一旦我保存文件,Visual Studio就会删除警告波动。
有人应该在Visual Studio团队中提出这个问题。