私は通常、接続文字列を別のファイルに入れ、web.config に次のようなものを追加します。
<connectionStrings configSource="WebConnection.config" />
VS 2012 をインストールしたところ、既存の公開設定が自動的に取得されました。ただし、webpublish を実行すると、2 つの接続文字列が自動的に追加されるため、デプロイ ターゲットの 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>
どうすれば削除できますか? :) それらをファイルから削除すると、公開設定を編集するたびに Web 公開ダイアログに追加されます。