VS2010 debug / release.config не работает - PullRequest
2 голосов
/ 20 сентября 2011

У меня проблемы с файлами web.debug.config и web.release.config.

Если быть более точным, моя веб-страница будет использовать только файл по умолчанию web.config и полностью игнорировать файлы debug и release. Это происходит не только при локальном запуске проекта, но и при публикации его на сервере IIS.

Я использую Visual Studio 2010 Ultimate (без пакета обновления).

Вот файлы конфигурации:

web.config:

<?xml version="1.0"?>

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

web.debug.config и web.release.config:

<?xml version="1.0"?>

<configuration xmlns:xtd="http://schemas.microsoft.com/XML-Document-Transform">
    <connectionStrings>
        <add name="MyConn" connectionString="SomeOtherConnectionString"
            providerName="System.Data.SqlClient"
            xtd:Transform="Replace"
            xtd:Locator="Match(name)"/>
    </connectionStrings>
</configuration>

Как я упоминал ранее, веб-сайт использует строку подключения из файла web.config, а не из web.release.config.

Другим интересным моментом является то, что в физической папке, в которую я опубликовал проект, существуют все три файла config; каждый точно такой же, как они появляются в решении VS.

Предложения, кто-нибудь?

Ответы [ 2 ]

4 голосов
/ 20 сентября 2011

Вам нужно запустить преобразования. Это не будет работать, если вы просто поместите 3 web.config в вашу папку. Вы можете запустить это, и оно преобразует ваш web.config

MSBuild.exe Project.csproj /T:TransformWebConfig /P:Configuration=Release

В вашей папке obj будет создана папка, созданная при сборке, которая будет называться TransformWebConfig. Преобразованный файл web.config будет в этом.

Вы также можете взглянуть на этот пост, он создает цель сборки для достижения этого автоматически.

http://vishaljoshi.blogspot.com/2010/05/applying-xdt-magic-to-appconfig.html

3 голосов
/ 21 сентября 2011

Я понял, что я делаю неправильно.

Вместо веб-приложения я использовал Проект веб-сайта .

(Разница между ними заключается в том, что Project на самом деле не содержит файл .proj. Как ни парадоксально.)

Теперь, когда я осознал реальную проблему, оказалось, чточто я не первый с ним ... Вот ссылка на предыдущий пост с решением для временного решения:

Как мне сделать преобразования Web.config с проектами веб-сайтов Visual Studio?

...