web-dev-qa-db-ja.com

リンクとして追加されたconfigSourceファイルを開くことができません

私のMVCアプリケーションでは、外部の構成ファイルを使用して、クリーンなweb.configを維持しています。一部のファイルは一般的であり、1つの場所からリンクとしてプロジェクトに追加しました。それらのファイルについては、コピーオプションを常にコピーに設定し、それらのファイルは宛先フォルダーにコピーされ、それらが表示されます。しかし、ブラウザでホームページを開こうとすると、「configSourceファイルを開けません」というエラーが表示されます。ファイルへのリンクを削除し、それらを追加するだけ(リンクなし)の場合、すべて正常に機能します。このエラーの原因は何ですか?

15

最後に私は何が問題であるかを見つけました。常にコピーを使用すると、ファイルはbinフォルダーにコピーされます。ただし、ファイルはビンではなく仮想ディレクトリで検索されます。そこで、正しいビルド先にファイルをコピーするビルド後のタスクを追加しました。

19

提案されたように、ビルド後のイベントを追加しました。ただし、正確な手順は次のとおりです。

  1. プロジェクトを右クリックして、プロパティに移動します
  2. [ビルドイベント]タブをクリックします
  3. Post-build event command line:ボックスに追加しました:

xcopy/s "$(ProjectDir)\ bin\Config" "$(ProjectDir)\ Config"

8
John Lay

私も同じ問題を抱えていました。私の場合、構成ファイルの「ビルドアクション」プロパティが原因でした。 (設定ファイルを右クリック>プロパティ>ビルドアクション)

「ビルドアクション」の値が「なし」に設定されました。 「コンテンツ」に変更すると、問題が解決しました。 (「Visual Studioのバグ」だったのか、それとも「クリックミス」だったのかが「なし」に設定されていたのかどうかはわかりません。

5
김성훈

失敗したxcopyソリューションを試した後、次の方法でうまくいきました:

Cstrings.configを右クリックして、Propertiesに移動します。

プロパティCopy to Output Directoryの値をCopy alwaysに設定します

3
Edgar Salazar

https://stackoverflow.com/a/38408867/224045 を参照してください。

<connectionStrings configSource="bin\Connections.config">  
</connectionStrings>

構成を区別するには(デプロイ/リリースなのでデバッグ/デプロイバージョン) transformation を追加できます。とにかくそれらを使用することは非常に便利です。

(はい、私はトピックが解決されたことを知っていますが、多分誰かがこの情報が私と同じように役立つと思うでしょう)

2
Tariktiri