2009-02-06 60 views
2

我使用System.Addin爲我的應用程序的一小部分創建插件。我目前有兩個不同的插件,它們都被正確檢測和初始化。我甚至可以複製&粘貼創建的插件文件夾,我也會看到它們。檢測使用System.Addin製作插件的問題

當我在調試和發佈文件夾中玩耍時,一切正常。當我嘗試將其中一個插件放入安裝應用程序的插件文件夾時,問題就出現了。即使合同,視圖或適配器中沒有任何更改,也不會檢測到複製的插件。

我試過從軟件的不同安裝版本(其中合同仍然相同)複製和粘貼插件。

我發現,使這項工作的唯一方法是複製所有與該插件架構的文件夾: 加載項 AddInSideAdapters AddInViews 合同 HostSideAdapters HostView.dll

我會猜測複製所有這些dll有點失敗了插件的目的。

有沒有人有新的System.AddIn這些問題?

編輯:插件是使用管道構建工具

回答

1

您是否嘗試過分析插件存儲高速緩存中創建?也許這是問題的根源。請查看here瞭解可用的方法。

0

MAF是非常對敏感的HostView,Contract和AddInView程序集的DLL版本。引用特定DLL版本的AddInView界面的AddIn將始終需要該確切版本。同樣,AddInAdapter應該引用AddInView的同一個DLL版本。如果您構建新的AddIn,則它必須鏈接到與AddInAdapter鏈接到的完全相同的版本DLL。

對於我們的實現,我確保HostView,Contract和AddInView DLL打包在單獨的nugets中,並且這些VS項目不是我的AddIns或Adapters相同解決方案的一部分。然後HostAdapter的packages.config內,AddInAdapter和個人的加載項,我要確保我們使用allowedVersions屬性package元素:

<package id="AddInPipelineSegments.AddInViews.AddinViewV1" 
     version="139.37.8.1011" 
     allowedVersions="[139.37.8.1011]" 
     targetFramework="net451" /> 

這將確保沒有意外的NuGet升級,這將改變版本。 。