2017-02-13 63 views
4

當用戶安裝我的擴展,但沒有安裝最新的Visual Studio的更新,擴展未能解決Microsoft.CodeAnalysis.CSharp.dll與followeing消息:VSIX擴展 - 如何確保引用的dll或程序集包含在VSIX文件中?

無法加載文件或程序集'Microsoft.CodeAnalysis.CSharp, 版本= 1.2.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或 其依賴項之一。該系統找不到指定的文件。

我確定擴展名確實引用了這個程序集,而且確實如此,但爲什麼這個程序集會被排除在VSIX文件之外呢?

我將VSIX文件重命名爲ZIP,查看內容,但即使其他「Microsoft.CodeAnalysis。*。dll」程序集包含在VSIX文件中,該程序集也未發貨。

我也確認引用上的「複製本地」屬性爲True。

+0

我也有同樣的行爲在這裏。無論你做什麼,一些程序集都不會進入vsix。 –

+0

嗨@HugoQuintelaRibeiro,請參閱我在下面找到的解決方案。希望它也能幫助你。 –

回答

4

我發現了這個問題的解決方案,我可以看到現在包含在VSIX中的DLL,並且用戶確認它適用於他。

  1. 在Visual Studio中,與擴展解決方案開放,
  2. 雙擊.vsixmanifest文件
  3. 打開 「資源」 選項卡
  4. 單擊 「新建」
  5. 將類型設置爲「微軟。 VisualStudio.Assembly「
  6. 將源設置爲」文件系統上的文件「
  7. 單擊瀏覽以設置路徑到您的dll,(不要擔心引用不添加爲絕對路徑,但添加編輯爲相對路徑或只是強大的組合名稱)
  8. 您可以將「嵌入此文件夾中」留空。
  9. 單擊確定
  10. 重建解決方案,並且該文件現在應該位於VSIX文件中。

enter image description here

這條線,然後添加到vsixmanifest文件:

<Asset Type="Microsoft.VisualStudio.Assembly" d:Source="File" Path="Microsoft.CodeAnalysis.CSharp.dll" AssemblyName="Microsoft.CodeAnalysis.CSharp, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
相關問題