我正在使用Visual Studio 2017附带的默认Roslyn SDK模板。它们创建的项目目标为.NET Framework Portable。我假设Roslyn可扩展性项目可以将目标指向.NET Standard \ Core而不是Portable,并且我正在寻找Roslyn分析器\重构项目的模板或示例,以供学习参考。
我正在使用Visual Studio 2017附带的默认Roslyn SDK模板。它们创建的项目目标为.NET Framework Portable。我假设Roslyn可扩展性项目可以将目标指向.NET Standard \ Core而不是Portable,并且我正在寻找Roslyn分析器\重构项目的模板或示例,以供学习参考。
默认模板转换分析器的示例可在此处获得。其中包括用于比较的原始分析器以及针对.NET标准的TestAnalyzerStandard
。
使其工作的步骤如下:
Microsoft.Composition
nuget包。这是Microsoft.CodeAnalysis.CSharp.Workspaces
所需的。如果您先添加了工作空间,则会出现引用的组合包不兼容的错误。Microsoft.CodeAnalysis.CSharp
nuget包(我正在使用最新的1.*版本)。Microsoft.CodeAnalysis.Csharp.Workspaces
nuget包(版本应与Microsoft.CodeAnalysis.CSharp
的版本匹配)。source.extension.vsixmanifest
,转到资源选项卡并更改对.NET标准库的引用。nuget pack Diagnostic.nuspec .
。Diagnostic.nuspec
适用于Nuget 2.x。 如果您在VS 2017中通过软件包管理控制台使用nuget,则必须将<file src="*.dll" ..."
更改为<file src="bin\*\netstandard1.3\*.dll" ...
。这些步骤是我在分析器方面的实验结果(之前我尝试创建针对完整框架而不是可移植库的DLL)。它们并不是任何意义上的官方。
.csproj
文件以指向Diagnostic.nuspec
进行打包。现在,您可以通过右键单击“TestAnalyzerStandard”->“Pack”直接从Visual Studio构建nuget包。Nuget包将出现在Debug(或Release)文件夹中。我还在“TestAnalyzerStandard \ Publish”文件夹中包含了构建的vsix扩展和nuget包,以便您可以看到我的机器上产生了什么。 - nejcs我开始着手一个新的Roslyn项目,逐步构建而非使用模板。 https://github.com/IKoshelev/Roslyn.AutoLogging/commit/1f88e3e49141e0fa425c51fdcb3457a7c3d6dcaa
我设法将以下目标定位:
重构项目——.NET Standard 1.3(此.dll将被分发,版本保持最低)
单元测试项目——.NET Core 2.0
VSIX项目——.NET Framework 4.6(我相信,只有完整版Visual Studio支持VSIX,所以这是可以的)
更新 Roslyn的版本控制现在有点复杂,即如果您想要在Visual Studio 2015中使用您的扩展,您将不得不使用PCL库。有关更多信息,请参阅Roslyn文章的结尾部分。