I am attempting to transform my Web.config file to add rewrite rules for release builds, but I'm getting an intellisense error.
The 'http://schemas.microsoft.com/XML-Document-Transform:Transform' attribute is not declared.
Web.Release.config
It seems to compile okay without errors. But when I attempt to Publish, I do get build errors:
No element in the source document matches '/configuration/system.webServer/rewrite'
The 'http://schemas.microsoft.com/XML-Document-Transform:Transform' attribute is not declared.
The first line above is an error, while the second one is a warning. Why doesn't this work?
Note that the top of my Web.config does include the line <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
UPDATE:
The build error when deploying turned out to be caused by something else. So, in fact, it does build okay and I can deploy. So at this point, the question is just about why this Intellisense error/warning is appearing.
As suggested in How do I enable IntelliSense in VS 2013 for <rewrite> in transform .config? this is a defect in Intellisense.
If you're using VS 2017 open "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Xml\Schemas\1033\DotNetConfig.xsd".
Locate the xs:element name="rewrite"
element near the end of the file and copy
<xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict"/>
to the end of the rewrite element.
As soon as I saved the file Visual Studio removed the warning squiggly.
Someone should probably raise this with the Visual Studio team.