1. 程式人生 > >vsix dll缺失問題

vsix dll缺失問題

data zip壓縮 img 它的 缺失 sem table studio src

自己在vs2015做的代碼可視化插件在只裝了vs2010/2012/2013的機器打不開。報了這個錯:
未能加載文件或程序集“Microsoft.VisualStudio.Shell.14.0, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一個依賴項。系統找不到指定的文件

檢查發現是依賴了兩個只有vs2015有的dll,分別是Microsoft.VisualStudio.Shell.14.0.dll
Microsoft.VisualStudio.Shell.Immutable.14.0.dll

只要將這兩個dll復制入vs低版本的 \Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies
類似目錄中,整個插件就可以加載。
於是希望插件發布時能夠安裝這兩個dll。
後來發現,所謂vsix不過是一個zip壓縮包,vs插件安裝過程只不過是把裏面的內容解壓到 C:\Users\me\AppData\Local\Microsoft\VisualStudio\10.0\Extensions\xxxx(插件相關的一個字符串)\ 裏面,如圖技術分享 在這裏我有幾點發現1.文件原封不動來自debug目錄2.工程依賴的其他工程的dll被復制過來,說明運行時系統是可以發現到這個文件夾內部的dll並加載之的3.resource目錄下是一個我自己添加的圖片資源,說明自己添加的資源也會被原封不動復制過來
於是,解決方案就是自己添加缺失的dll作為資源,於是vsix安裝過後在這個文件夾就會有那些dll,運行時這些dll也會被加載
具體操作如下1. 工程下點add ->existing item, 添加dll技術分享
2. dll屬性頁,將include in vsix設成True技術分享
編譯過後,vsix裏面就有dll了

來自為知筆記(Wiz)

vsix dll缺失問題