複数のプロジェクトで構成される .Net ソリューションがあります。これらのプロジェクトの 1 つは、WPF プロジェクトが依存するすべてのビジネス ロジックを保持します。
ビジネス ロジック プロジェクトは、さまざまな機能のために一連のリソース ファイルを使用します。
以前は 2 つのプロジェクトは 1 つだけだったので、これらのリソース ファイルをすべて [出力ディレクトリにコピー] を true に設定しました。実行中のアプリケーションは、ファイル パスを次のように構成しました。
static readonly string ResourceFilePath =
Path.Combine(
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
"resources\\thefile.ext");
.
私はリソースを使用できることを知っており、それは正常に機能します (拡張子が消え、文字がに置き換えられることを除いて_
)。
ただし、多数のファイルを保持するディレクトリ ツリーがある場合もあります。実行中のアプリケーションは、全体を一時的な場所にコピーします。
個々のリソース ファイルと同様に、すべてのファイルを Visual Studio の出力ディレクトリにコピーするように設定しました。実行中のアプリケーションはディレクトリのパスを構成し、そのパスを使用してすべてを一時的な場所に再帰的にコピーします。
static readonly string ResourceFilesPath =
Path.Combine(
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
"resources\\somedirectory\\");
public void CopyAll(DirectoryInfo source, DirectoryInfo target)
{
...
これはすべて、Visual Studio でのデバッグ中、およびアプリケーションがインストールされている場合でもうまく機能しました。また、ファイルはディスク上にあるため、個別にバージョン管理されていました。
私の問題は、ディレクトリとファイル構造をコピーする 2 番目のシナリオにあります。ビジネス ロジックが別のプロジェクトにあるため、リソース ファイルはフロントエンド プロジェクトの出力ディレクトリにコピーされません。
私の質問は: ディレクトリ ツリー内の多くのリソースを処理するためのより良い方法はありますか?