我正在获取我的 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
我注意到,只有当directoy中有一个空格时它才能找到它test 1
,但如果它只是test1
如果我用空格运行它,我会收到错误:
Could not find part of the path 'C:\TEST%202\CUSTOM\'.