次のような MEF 固有の dll を取得しています。
string exeFile = (new Uri(Assembly.GetEntryAssembly().CodeBase)).AbsolutePath;
string exeDir = Path.GetDirectoryName(exeFile);
using (DirectoryCatalog catalog = new DirectoryCatalog(Path.Combine(exeDir,"Custom")))
{
using (CompositionContainer container = new CompositionContainer(catalog))
{
container.ComposeParts(this);
}
}
これは開発中の場合は機能しますが、ビルドしてビルド出力を取得し、それを というフォルダーに入れると、c:\test 1
からアプリを実行するc:\test
と、ディレクトリが見つからないと表示されますc:\test 1\custom
。
Custom
と同じパスにあるフォルダEXE
気がついたのですが、ディレクトリに のようなスペースがある場合にのみ見つけることができますがtest 1
、test1
スペースを入れて実行すると、次のエラーが発生します。
Could not find part of the path 'C:\TEST%202\CUSTOM\'.