12

私は通常、接続文字列を別のファイルに入れ、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 公開ダイアログに追加されます。

4

3 に答える 3

6

プロジェクトのプロパティ、「パッケージ/パブリッシュ Web」に移動し、「P/P SQL タブで構成されたすべてのデータベースを含める」というマークをチェックすることで、突然解決しました (そして、そこで構成された DB はありません:))。

これを行って、言及された行を .pubxml から削除すると、すべてうまくいきました。

ハックのように思えますが、それは私にとっては良い方法でした:)

@Sayed、それがバグであることを確認してくれてありがとう、それが解決されることを願っています!

于 2012-06-08T09:22:02.300 に答える
1

発行プロファイルの [設定] タブで、[実行時にこの接続文字列を使用する]チェック ボックスと [ Code First 移行を適用する] チェック ボックスをオフにします。移行が有効になっていることを確認してください。そうしないと、[この接続文字列を使用する]ボックスがクリアされず、プロファイルを開くたびに再度クリアする必要がある場合があります。

于 2012-06-06T15:23:49.437 に答える