Я обычно добавляю строку подключения в отдельный файл, добавляя что-то вроде этого в 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>
конечно, что создает ошибку (node содержимое должно быть пустым при использовании configSource
).
Я заметил, что в недавно созданных файлах .pubxml(где теперь сохраняются настройки публикации) имеются следующие строки:
<ItemGroup>
<_ConnectionStringsToInsert Include="EF.Model.DbContext" />
<_ConnectionStringsToInsert Include="Migrations.Db.MigrationDb" />
</ItemGroup>
Как я могу их удалить?:) Если я удалю их из файла, диалог Web-публикации добавит их в любое время, когда я отредактирую настройки публикации.