Преобразования Web.config в ASP.NET MVC 2 и дополнительные файлы Web.config - PullRequest
2 голосов
/ 22 декабря 2010

Я пытаюсь использовать преобразования Web.config в моем проекте ASP.NET MVC 2, работающем в .NET 4. Однако у меня возникла проблема:

// Root Web.config
<add name="MyDB" connectionString="default...default" />


// Root Web.Debug.config
<add name="MyDB" connectionString="debug...debug" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />

// Root Web.Release.config
<add name="MyDB" connectionString="release... release" xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />

Я получаю эту ошибку:

Предупреждение Ни один элемент в исходном документе не соответствует '/ configuration / add [@ name =' MyDB ']' C: \ filePath \ Web.Release.config

Я сузил это до файла Web.Config внутри папки Views. Если я дам ему connectionString, например, в корневом файле Web.config, то все будет хорошо, но это означает, что мне нужно поддерживать два файла Web.config. Есть ли какое-то решение этого? Я что-то не так делаю?

Ответы [ 2 ]

3 голосов
/ 22 декабря 2010

Не уверен, почему подразумевается web.config в папке представлений, но из-за получаемой ошибки это звучит так, как будто имеется несоответствие между элементом в web.config и файлами конфигурации transform.

В web.config, если предположить, что <add /> является дочерним элементом <connectionStrings />, вы должны сделать:

<?xml version="1.0" encoding="utf-8"?>

<configuration>

...

    <connectionStrings>
        <add name="SomeName" providerName="System.Data.SqlClient" connectionString="SomeConnectionString" />
    </connectionStrings>

...

</configuration>

, а в web.debug.config

<?xml version="1.0" encoding="utf-8"?>

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

...

    <connectionStrings>
        <add xdt:Locator="Match(name)" xdt:Transform="SetAttributes(connectionString)" name="SomeName" connectionString="SomeOtherConnectionString" />
    </connectionStrings>

...

</configuration>
1 голос
/ 23 мая 2013

Как я уже сказал: Не забудьте вручную скопировать все остальные атрибуты «конфигурации» из исходного «web.config», так как кажется, что VS2012 не делает это автоматически, поэтому совпадений не будет ...

...