gpt4 book ai didi

c# - 如何将 Roslyn 代码分析器添加到 Unity 项目? (适用于 2020 以下的 Unity 版本)

转载 作者:行者123 更新时间:2023-12-05 02:43:30 28 4
gpt4 key购买 nike

当我将 Roslyn 代码分析器安装为我的 Unity 项目解决方案的项目(比如 Assembly-CSharp)的 NuGet 包时,会发生两件事:

  • 包安装到Packages Unity项目根目录下的文件夹
  • 和类似<Analyzer Include="packages\SomeAnalyzer.1.2.3\analyzers\dotnet\cs\SomeAnalyzer.dll" /> 的行被添加到 .csproj文件(在我们的例子中是 Assembly-CSharp.csproj )

问题是 - Unity 重生 .csproj文件(例如,当您添加或删除 .cs 文件或当您关闭并重新打开 Unity 编辑器时)。再生.csproj删除添加的行,如上所述。分析仪停止工作。

看起来像for Unity 2020 the problem is solved .但是我的项目在 Unity 2019 上,现在无法更新到 2020。所以我的问题是:是否可以将代码分析器添加到 Unity 项目并使其适用于 2020 年以下的 Unity 版本?

最佳答案

好的,我找到了一些解决方案:

#1 带有气味的代码,但它有效(但很可能接下来的两个解决方案中的一个更适合您):

( found it here )我们接受 Unity 从 .csproj 文件中删除有关已安装包的行。但是我们使用 Unity Hook AssetPostprocessor.OnGeneratedCSProjectFiles 来“手动”重写 .csproj 以返回这些行。

#2 更优雅的方式(我选择了它)

( found it here )我们只是将 Directory.Build.props 文件放在我们的 .sln 附近并(手动,但一次)放在它的行中,Unity 从 .csproj。就这样。

#注意:如果您希望分析器不对所有项目起作用,您可以使用 Condition for Property group .

#3 我没有检查它,但它可能会成为最适合你的解决方案

( found it here )我们应该添加以这种方式引用分析器 dll 和规则集的 Assets/csc.rsp 文件:

-a:"full_or_relative_path_to_UnityEngineAnalyzer.dll"
-ruleset:"full_or_relative_path_to_rules.ruleset"

它可能只适用于 Rider (IDE),因为要求如下:

Applies to Unity 2019.2+ with Rider package 1.1.3+

关于c# - 如何将 Roslyn 代码分析器添加到 Unity 项目? (适用于 2020 以下的 Unity 版本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66901265/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com