我正在使用System.Addin为我的应用程序的一小部分创建插件。我现在有两个不同的插件,它们都被正确地检测和初始化。我甚至可以复制和粘贴所创建的插件文件夹,我也会看到它们的出现。
当我在调试和释放文件夹中运行时,一切都很好。当我试图将其中一个插件放到安装应用程序的插件文件夹中时,问题就出现了。即使合同、视图或适配器中没有任何更改,也不会检测到复制的插件。
我尝试过从不同安装版本的软件中复制和粘贴插件(在这个版本中,合同仍然相同)。
我发现做这个工作的唯一方法是复制与插件体系结构相关的所有文件夹:AddIns AddInSideAdapters AddInViews Contracts HostSideAdapters HostView.dll
我猜想,复制所有这些all,某种程度上违背了插件的目的。
有没有其他人在新的System.AddIn上遇到过这些问题?
编辑:插件是使用管道生成器工具创建的。
发布于 2009-03-30 14:14:38
您试过分析加载项存储缓存吗?也许这就是问题的根源。看看这里是否有可用的方法。
发布于 2015-06-19 16:59:26
MAF对HostView、程序集的DLL版本非常敏感。引用AddInView接口的特定DLL版本的AddInView总是希望该版本准确。同样,AddInAdapter应该引用AddInView的相同DLL版本。如果您构建了一个新的AddIn,它必须链接到AddInAdapter链接到的完全相同的版本DLL。
对于我们的实现,我确保HostView、Contract和AddInView DLL打包在单独的nugets中,并且这些VS项目并不是与我的AddIns或适配器相同的解决方案的一部分。然后,在packages.config of HostAdapter、AddInAdapter和单独的AddIns中,确保在package元素上使用allowedVersions属性:
<package id="AddInPipelineSegments.AddInViews.AddinViewV1"
version="139.37.8.1011"
allowedVersions="[139.37.8.1011]"
targetFramework="net451" />这可以确保没有意外的nuget升级会更改版本。
https://stackoverflow.com/questions/520777
复制相似问题