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

相关问题