开发者

Why does this web.config transform say it can't find the applicationSettings element?

I get the following error while transforming a web.config fil开发者_开发问答e in TeamCity. It happens on the element, <applicationSettings xdt:Transform="Replace">.

No element in the source document matches '/configuration/applicationSettings'

The source file has this setting. Any idea how to solve this?


I had to remove the namespace attribute from the configuration node. There is some conflict in the declared schema and the elements I was using.

xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"


I would like to give a more detailed answer for others here.

In Visual Studio 2010 the web.config transform engine didn't respect xmlns declarations. Because of that if your source web.config had an xmlns declaration, and if you created a transform then the transformation would not work. This is because when we perform the XPath to identify the source which should be replaced we cannot find the value. In order to work around this you should remove the xmlns declaration on the source web.config as well as the transform.

With that being said, in Visual Studio 2010 SP1 we fixed the namespace bug. So your source web.config as well as your transformation must agree on the xmlns, if one has it the other must have it as well.

I suspect that you are using the pre-SP1 bits, but not sure. In order to ensure that the behavior doesn't change if you upgrade to SP1 I recommend you remove xmlns declaration from your source web.config as well as your transforms. The xmlns is not needed in the web.config file so it is safe to remove it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜