目前我遇到与How do I get a MEF Directory catalog looking at the same directory for both the Servicelayer and DAL?相同的问题。
我有一个服务说serviceWithMEF
初始化MEF容器。如果Web应用程序项目在同一解决方案中使用此服务,则目录的相对路径(例如..\..\Extensions
)将从Web的根文件夹中搜索dll的两个文件夹。但是,如果解决方案中的某些其他非Web项目使用它,它会在\ Debug \ Bin中查找Extensions目录中的两个文件夹。
我希望同一解决方案中的所有项目在同一位置查找Extensions目录,而不使用绝对路径。 serviceWithMEF
目前从globalsettings.xml获取路径..\..\Extensions\
。
我有一个可能的解决方案是在所有项目文件夹中创建一个名为“Extensions”的符号链接,并使链接指向Web应用程序使用的Extensions目录。但是,MEF似乎并未将符号链接视为目录。
var catalog = new AggregateCatalog();
catalog.Catalogs.Add(new DirectoryCatalog(Config.ExtensionPath));
如果我有一个用mklink /D Extensions ..\..\Extensions
而不是实际目录创建的符号链接,给我留下一个空目录。
任何帮助将不胜感激