2

嗨我在我的VS2015擴展中使用roslyn Microsoft.CodeAnalysis.Csharp dll,我升級了我的Visual Studio擴展項目到Visual Studio 2013到2015.但只有我的roslyn dll的不復制當我想安裝擴展。我的目標框架仍然是相同的(.net 4.5.0)。我檢查nuget.org到新的羅斯林DLL,支持的版本看起來相同。我嘗試升級我的羅斯林版本,但結果是一樣的。 如果我手動複製到擴展路徑roslyn dlls那時myextension正在工作。 有沒有關於這個的想法?Visual Studio 2015包擴展,引用的DLL不復制

回答

1

在Visual Studio 2015年VSIX項目,如Microsoft.CodeAnalysis.dll某些DLL不會複製到擴展path.You可以添加

<ForceIncludeInVSIX>true</ForceIncludeInVSIX> 

標籤就像您參考標籤內。

<Reference Include="Microsoft.CodeAnalysis.dll, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> 
     <ForceIncludeInVSIX>true</ForceIncludeInVSIX> 
</Reference> 

有關詳細信息,您可以檢查這個網站... http://comealive.io/Forcing-DLLs-To-Vsix/

1

羅斯林包括與Visual Studio;你不應該在你的VSIX中包含Roslyn DLL。

如果這樣做,您可能會從加載DLL的不同副本中收到許多奇怪的錯誤。

+1

偶爾會有用。例如,如果你想發佈一個也適用於VS 2013的VSIX的DLL。也就是說,人們應該明確知道風險。 – JoshVarty

+0

同意它是VS 2015的一部分,但是,當我在VS 2017中使用Roslyn NuGet包創建了擴展時,VS 2015沒有看到它們。令人沮喪。 – Karl

+0

@Karl:您需要引用您希望您的擴展支持的最低版本的Roslyn/VS。 – SLaks

相關問題