Zen*_*xer 10 .net c# roslyn .net-core
我有一个由多个 .NET Core 项目组成的解决方案。我有一些我想执行的代码分析任务仅适用于此解决方案,因此将它们放在单独的存储库/解决方案中是没有意义的。使用适当的模板,我为分析器创建了三个项目:
Example.Analyzer.Vsix 无法编译,因为 Visual Studio 需要 .NET Framework,但我的目标是 .NET Core 以供跨平台使用。现在,我忽略该项目,但我打算将其删除。Example.Analyzer 和 Example.Analyzer.Test 都针对 netcoreapp3.0,以及解决方案中的所有其他项目。
我已经编写了我的分析器并且测试通过了。但是,我不确定如何实际使用其他项目中的这些分析器。我尝试通过 ProjectReference 添加 Example.Analyzer 作为依赖项,但这似乎并没有启用分析器。
Kel*_*lux 22
从字面上看,昨天我想为我正在开发的产品创建一组分析器,在不同的解决方案中这样做并穿上私人 Nuget 以便我可以使用它们是没有意义的。我能够找到一个完美的解决方案:
<ProjectReference Include="..\..\analyzers\AnalyzersProject\AnalyzersProject.csproj">
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<OutputItemType>Analyzer</OutputItemType>
</ProjectReference>
Run Code Online (Sandbox Code Playgroud)
这就是所需要的。现在,一旦构建了您的解决方案,您的新分析器就应该可以工作了。唯一需要注意的是 Visual Studio 似乎缓存了分析器,因此如果您更改它,您可能需要关闭并重新打开 VS 以使新的/更改的分析器工作。
尽管我很想,但我不能完全相信这一点。昨天我自己确实非常接近这个解决方案,但是今天早上我发现了一篇博客文章,它简化了一些事情(这是我从上面获得最终解决方案的地方,我的还有一些“不必要的”行)
在我的案例中,我做的一件事是利用我的项目文件夹中的“ Directory.Build.props ”文件来添加此项目引用。这样,在该文件夹内创建的所有项目都会自动使用我创建的分析器。
| 归档时间: |
|
| 查看次数: |
1202 次 |
| 最近记录: |