是否有用于构建具有新msbuild SDK csproj的roslyn分析器的模板?

时间:2017-10-12 06:17:38

标签: .net msbuild nuget roslyn-code-analysis

我的分析器是用

构建的
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <PackageId>Weingartner.Json.Migration.Roslyn</PackageId>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.CodeAnalysis" Version="2.3.2" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\Weingartner.Json.Migration.Common_\Weingartner.Json.Migration.Common.csproj" />
  </ItemGroup>
</Project>

但是我需要将它放在分析器格式的nuget包中。什么是msbuild标签和正确打包nuget包的内容。对于某些上下文,我将使用以下powershell脚本来构建nuget包

$version=gitversion /output json /showvariable FullSemVer
dotnet pack -o ./artifacts  --configuration Release /p:Version=$version Weingartner.Json.Migration.Roslyn\Weingartner.Json.Migration.Roslyn.csproj
dotnet nuget push Weingartner.Json.Migration.Roslyn\artifacts\Weingartner.Json.Migration.Roslyn.$version.nupkg

此问题适用的开源项目是

https://github.com/Weingartner/Migrations.Json.Net

1 个答案:

答案 0 :(得分:0)

这里有一些文档: https://docs.microsoft.com/en-us/nuget/schema/analyzers-conventions

这里有一个例子https://github.com/dotnet/roslyn-analyzers/tree/master/nuget/Roslyn.Diagnostics.Analyzers

由于您正在讨论新的SDK项目,我假设您主要针对的是软件包引用项目,因为install.ps1 / uninstall.ps1与Package Reference不兼容,我建议不要依赖这些脚本。理想情况下,您的包装中没有它们。