C# 让Unity显示StyleCop错误
我有一个与Unity3D一起开发的项目。现在我想把StyleCop添加到这个项目中 我已经添加了显示VisualStudio中已经存在的警告的内容(这比StyleCop Classic有很大的好处)。但是现在我想看到Unity中的警告,让构建失败。为了在出现任何警告时让构建失败,我已经添加了一个带有C# 让Unity显示StyleCop错误,c#,unity3d,stylecop,roslyn-code-analysis,C#,Unity3d,Stylecop,Roslyn Code Analysis,我有一个与Unity3D一起开发的项目。现在我想把StyleCop添加到这个项目中 我已经添加了显示VisualStudio中已经存在的警告的内容(这比StyleCop Classic有很大的好处)。但是现在我想看到Unity中的警告,让构建失败。为了在出现任何警告时让构建失败,我已经添加了一个带有-warnaserror+的csc.rsp文件,但不幸的是,我在Unity中没有任何警告 是否可以将StyleCop警告发送到Unity编辑器? Unity版本2019.3.0b7(如果需要) 编辑:
-warnaserror+
的csc.rsp
文件,但不幸的是,我在Unity中没有任何警告
是否可以将StyleCop警告发送到Unity编辑器?
Unity版本2019.3.0b7(如果需要)
编辑:同一问题的另一个视图为:
如何在roslyn上安装分析仪
不幸的是,我认为安装roslyn分析器的选项似乎是将其安装为nuget软件包或Visual Studio扩展。但由于这两种方法都将错误集成到VisualStudio中,因此我需要另一种方法向roslyn添加一个分析器,让编译器发出错误,然后在Unity3D中显示
Edit2:非常清楚:我已经可以执行
UnityEngine.Debug.LogError
并将每个StyleCop错误打印到UnityConsole。但我希望StyleCop集成到unity的编译管道中。这样我就不能再按play了。如果您不介意编写一些小代码,这里有一个解决方案
- Unity有一个警告,它会记录你建造过程中的每一个警告。像这样:
Assets/SomeScript.cs(134,33):警告CS0618:
已过时:请改用UnityEngine.Random.Random(float,float)
Random.Range
- Unity有一个回调,其描述如下: 实现此接口以在 构建已启动 从那时起,您可以开始监视日志更改
- 当构建结束时,Unity还可以通过向特定函数添加回调函数进行回调。以下是描述: 将此属性添加到方法中,以便在构建播放器后立即获得通知 [更新]
- 现在您已经记录了上一次生成中是否存在警告,您可以在内存或文件系统中设置一个标志,然后添加几行代码来检查此标志,如果是真的,则使用
EditorApplication.ExitPlaymode()
- Unity有一个警告,它会记录你建造过程中的每一个警告。像这样:
Assets/SomeScript.cs(134,33):警告CS0618:
已过时:请改用UnityEngine.Random.Random(float,float)
Random.Range
- Unity有一个回调,其描述如下: 实现此接口以在 构建已启动 从那时起,您可以开始监视日志更改
- 当构建结束时,Unity还可以通过向特定函数添加回调函数进行回调。以下是描述: 将此属性添加到方法中,以便在构建播放器后立即获得通知 [更新]
- 现在您已经记录了上一次生成中是否存在警告,您可以在内存或文件系统中设置一个标志,然后添加几行代码来检查此标志,如果是真的,则使用
EditorApplication.ExitPlaymode()
- 如果您不介意编写一些小代码,这里有一个解决方案
Editor\Data\Tools\roslyn\
下的编译器中,然后在csc.rsp
中使用-warnaserror+
将分析器警告转换为编译器错误吗?您最后的假设尚未完成。是的,我想让我的CI构建失败,但这是我已经可以做到的。这个问题的目的是向UnityEditor的方向发展。我想,应用程序将不再播放。好的,这似乎是一个解决办法,但它可能会工作。您对第二种方法有什么想法吗:我可以将roslyn分析器安装到驻留在Editor\Data\Tools\roslyn\
下的编译器中,然后在csc.rsp
中使用-warnaserror+
将分析器警告转换为编译器错误吗?