Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

522
Views
¿Cómo agregar analizadores de código Roslyn al proyecto Unity? (para versiones de Unity anteriores a 2020)

Cuando instalo el analizador de código Roslyn como paquete NuGet para un proyecto (por ejemplo Assembly-CSharp ) de solución de mi proyecto Unity, suceden 2 cosas:

  • el paquete se instala en la carpeta Packages en la raíz del proyecto Unity
  • y líneas como <Analyzer Include="packages\SomeAnalyzer.1.2.3\analyzers\dotnet\cs\SomeAnalyzer.dll" /> se agregan al archivo .csproj (en nuestro caso Assembly-CSharp.csproj )

El problema es que Unity regenera el archivo .csproj (por ejemplo, cuando agrega o elimina archivos .cs o cuando cierra y vuelve a abrir el editor de Unity). La regeneración de .csproj borra las líneas añadidas, mencionadas anteriormente. Y los analizadores dejan de funcionar.

Parece que para Unity 2020 el problema está resuelto . Pero mi proyecto está en Unity 2019 y no se pudo actualizar a 2020 ahora. Entonces, mi pregunta es: ¿Es posible agregar un analizador de código a Unity-project y hacer que funcione para las versiones de Unity anteriores a 2020?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Ok, he encontrado algunas soluciones:

# 1 Código con olor, pero funciona (pero lo más probable es que una de las siguientes dos soluciones sea mejor para usted):

( lo encontré aquí ) Aceptamos que Unity borre líneas sobre el paquete instalado del archivo .csproj . Pero usamos un gancho de Unity AssetPostprocessor.OnGeneratedCSProjectFiles para reescribir "manualmente" .csproj devolviendo esas líneas.

#2 Manera mucho más elegante (yo la elegí)

(Lo encontré aquí ) Simplemente colocamos el archivo Directory.Build.props cerca de nuestro .sln y lo colocamos (manualmente, pero una vez) en sus líneas, que Unity elimina de .csproj . Eso es todo.

#Nota: si desea que el analizador no funcione para todos los proyectos, puede usar Condición para el grupo de propiedades .

#3 No lo comprobé, pero puede ser que se convierta en la mejor solución para ti

( lo encontré aquí ) Deberíamos agregar el archivo Assets/csc.rsp que hace referencia al conjunto de reglas y dlls del analizador de esta manera:

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

Puede funcionar solo con Rider (IDE), porque los requisitos se establecen como:

Se aplica a Unity 2019.2+ con el paquete Rider 1.1.3+

over 4 years ago · Santiago Trujillo Report

0

He estado observando la característica de los analizadores para la unidad, en una versión 2019.4, los archivos csproj se generan correctamente sin ningún archivo csc.rsp si sigo las siguientes reglas de la unidad (del enlace que publicaste):

  • Mueva los tres archivos .dll a la carpeta Activos (o cualquier carpeta anidada en la carpeta Activos) en su proyecto de Unity.
  • En el Editor, seleccione el archivo .dll. En el Inspector de complementos, en Seleccionar plataformas para el complemento, deshabilite Cualquier plataforma. En Incluir plataformas, deshabilite Editor y Plataformas independientes.
  • Luego, asigne a todas las DLL una nueva etiqueta llamada RoslynAnalyzer.

Pero ahora no me salen los avisos que buscaba en la consola de Unity. Sin embargo, las advertencias están ahí en una versión 2020. ¿Puede ver las advertencias de los nuevos analizadores en una versión 2019 de Unity?

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!