Я Обычно я помещаю строку подключения в отдельный файл, добавляя что-то вроде этого в web.config:
<connectionStrings configSource="WebConnection.config" />
Я только что установил VS 2012, и он автоматически подхватил мои существующие настройки публикации. Однако, когда я делаю webpublish, он теперь добавляет две строки подключения сам по себе, поэтому мой web.config в целевом объекте развертывания теперь выглядит так:
<connectionStrings configSource="WebConnection.config">
<add name="EF.Model.DbContext" connectionString="EF.Model.DbContext_ConnectionString" providerName="System.Data.SqlClient" />
<add name="Migrations.Db.MigrationDb" connectionString="Migrations.Db.MigrationDb_ConnectionString" providerName="System.Data.SqlClient" />
</connectionStrings>
конечно, это выдает ошибку (содержимое узла должно быть пустым при использовании configSource
).
Я заметил, что во вновь сгенерированных файлах .pubxml (где теперь хранятся настройки публикации) есть следующие строки:
<ItemGroup>
<_ConnectionStringsToInsert Include="EF.Model.DbContext" />
<_ConnectionStringsToInsert Include="Migrations.Db.MigrationDb" />
</ItemGroup>
Как их удалить? :) Если я удалю их из файла, диалог веб-публикации добавит их каждый раз, когда я редактирую настройки публикации.