Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 让Unity显示StyleCop错误_C#_Unity3d_Stylecop_Roslyn Code Analysis - Fatal编程技术网

C# 让Unity显示StyleCop错误

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(如果需要) 编辑:

我有一个与Unity3D一起开发的项目。现在我想把StyleCop添加到这个项目中

我已经添加了显示VisualStudio中已经存在的警告的内容(这比StyleCop Classic有很大的好处)。但是现在我想看到Unity中的警告,让构建失败。为了在出现任何警告时让构建失败,我已经添加了一个带有
-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()

      我不确定你能不能。看,我不确定你能不能。看,你最后的假设是不完整的。是的,我想让我的CI构建失败,但这是我已经可以做到的。这个问题的目的是向UnityEditor的方向发展。我想,应用程序将不再播放。好的,这似乎是一个解决办法,但它可能会工作。您对第二种方法有什么想法吗:我可以将roslyn分析器安装到驻留在
      Editor\Data\Tools\roslyn\
      下的编译器中,然后在
      csc.rsp
      中使用
      -warnaserror+
      将分析器警告转换为编译器错误吗?您最后的假设尚未完成。是的,我想让我的CI构建失败,但这是我已经可以做到的。这个问题的目的是向UnityEditor的方向发展。我想,应用程序将不再播放。好的,这似乎是一个解决办法,但它可能会工作。您对第二种方法有什么想法吗:我可以将roslyn分析器安装到驻留在
      Editor\Data\Tools\roslyn\
      下的编译器中,然后在
      csc.rsp
      中使用
      -warnaserror+
      将分析器警告转换为编译器错误吗?