0

私は多くの参照を持つプロジェクトを持っています。それらはすべて.exeファイルと同じディレクトリにあります。ファイルが多すぎるため、.exe を見つけるのが難しい場合があります。

プロジェクト内の別のフォルダーへの参照を移動するにはどうすればよいですか?

4

1 に答える 1

0

私の最初の提案は、問題を回避する簡単な方法を探すことです-出力フォルダーでexeを見つける必要がありますか? (本当に?!) .exe へのショートカットをもっと便利な場所に置いて、検索する必要がないようにしてもらえますか? 必要なファイルを別の展開場所にコピーするバッチ ファイルを作成できますか? 自分で出力フォルダーに近づく必要がないように、.exe に対して行っている操作を自動化できますか?

本当にビルド プロセスを試してみたい場合は...

警告: 以下のものをいじると、ビルドが壊れる可能性があり、ほぼ確実に将来的に価値のある問題が発生する可能性があります。バックアップで慎重に試して、結果に満足している場合にのみ変更をコミットしてください! また、ファイル名を参照する場合は、必ず相対フォルダー パスを使用してください。そうしないと、ソース コードを別のフォルダーに配置しようとすると、すべてが壊れてしまいます。

アプリケーションが参照する DLL は、.exe の隣のサブフォルダーに配置することができ、それらを見つけて正常に実行する必要があります。ただし、既定では、Visual Studio のビルド プロセスは、参照されている dll を exe と共に (サブフォルダーにはコピーしません) コピーします。

このコピー手順は、各参照のプロパティで無効にできます。[ローカルにコピー] オプションをオフにします。(DLL の古いコピーを取り除くために、Debug/Release フォルダーもクリーンアップする必要があります。そうしないと、動作しているように見えますが、古い DLL がコードの変更によりますます古くなるため、徐々に動作しなくなります) . dll がローカルにコピーされていないと、exe は実行されないため、展開されたファイル構造 (dll のサブフォルダー) を構築する独自の方法を考案する必要があります。

これにはさまざまな解決策がありますが、最も簡単な方法の 1 つは (他の方法で壊れる可能性が最も低い)、dll ファイルを配置場所にコピーするビルド後のイベント コマンドを追加することです。.exe の横にある Debug/Release フォルダーに参照をコピーするか、exe とそのすべての依存関係をまったく別の場所にコピーすることを選択できます。ビルドを不必要に遅くしたくない場合は、「新しい場合のみコピー」を行う必要があることに注意してください。

(別のオプションは、プロジェクトごと、またはソリューション ビルド全体の出力フォルダーを変更することですが、それは多くのものを壊す可能性が高くなります)

ただし、これを行うことはお勧めしません。自分が何をしているのか分かっていても、通常のビルド プロセスと戦うと、ビルド システムが脆弱または壊れてしまう可能性が非常に高くなります。

于 2013-08-02T22:43:12.740 に答える