MEF使用Microsoft Composition MEF2的可移植类库抛出文件未找到异常

时间:2016-04-13 10:40:03

标签: mef nuget-package roslyn vsix mef2

我正在研究可移植类库(PCL)并尝试实现MEF。我使用了Nuget的System.Composition。当我为vsix(Extension for Visual Studio)构建和打包时,它不打包并将这些dll放在扩展文件夹中 (C:\ Users \用户名\ AppData \本地\微软\ VisualStudio的\ 14.0Exp \扩展\ EXTENSIONNAME \ AppName \目录versionofYourApp)。当我手动将这些库放在这个文件夹中时它工作正常。有人可以提出一个很好的解决方案。我正在为Roslyn Analyzers编写它并创建一个nuget包。我再次遇到同样的问题,即使我将这些库包装在一起。

2 个答案:

答案 0 :(得分:0)

在VSIX对MEF DLL的引用中将Copy Local设置为true。

答案 1 :(得分:0)

我找到了一个解决方案,想到分享。欢迎您更正并提出建议。对于Vsix扩展,我将这些库作为资产(VisualStudio.Assembly)从本地添加。

对于包,Assembly.Load(“AssemblyName”)试图从所有可能的位置加载库,如“C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ PrivateAssemblies”等等。所以我把它放在那里,它正在加载。我知道这不是最好的解决方案。欢迎您提出建议。