Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

301
Visualizações
Generador de código fuente de C#: advertencia CS8032: no se puede crear una instancia de analizador

Estoy tratando de construir un generador de fuentes. En este momento, solo el método estático más básico que devuelve "Hello World".

El proyecto del generador se compila, pero el código generado no está disponible, el depurador nunca se inicia y el resultado de la compilación muestra

CSC: advertencia CS8032: no se puede crear una instancia del analizador Generator.StaticPropertyEnum.helloWorld desde ...\bin\Debug\net5.0\Generator.StaticPropertyEnum.dll: no se pudo cargar el archivo o ensamblado 'System.Runtime, Version=5.0 .0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' o una de sus dependencias. El sistema no puede encontrar el archivo especificado..

Ejemplos a los que hago referencia

  • Proyecto de muestra del generador de equipo de Roslyn
  • Libro de cocina de Roslyn Team Generator
  • Proyecto Generator.Equals
  • Cómo depurar generadores de código fuente de C# 9

He intentado

  • cambiar TargetFramework y LanguageVersion tanto del generador como de los proyectos de prueba
  • haciendo referencia a muchas versiones de las bibliotecas de analizadores Microsoft.CodeAnalysis.CSharp y Microsoft.CodeAnalysis.Analyzers
  • haciendo referencia a una versión explícita de Microsoft.Net.Compilers.Toolset
  • Agregar una referencia explícita a la biblioteca NetStandard
  • comenzando desde cero con una plantilla de proyecto de analizador
  • buscando una plantilla de proyecto de generador (pero no encontré ninguna)

Versiones

Visual Studio: versión 16.8.3
SDK de .NET: 5.0.101

Código

Generador.csproj

 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net5.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.9.0-2.final" PrivateAssets="all" /> <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.0.0" PrivateAssets="all" /> </ItemGroup> </Project>

Probar csproj

 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net5.0</TargetFramework> <IsPackable>false</IsPackable> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" /> <PackageReference Include="xunit" Version="2.4.1" /> <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3"> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PrivateAssets>all</PrivateAssets> </PackageReference> <PackageReference Include="coverlet.collector" Version="1.3.0"> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PrivateAssets>all</PrivateAssets> </PackageReference> </ItemGroup> <ItemGroup> <ProjectReference Include="..\Generator.StaticPropertyEnum\Generator.StaticPropertyEnum.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/> </ItemGroup> </Project>

Generador

 [Generator] public class helloWorld : ISourceGenerator { public void Execute(GeneratorExecutionContext context) { context.AddSource("HelloWorld-generated.cs", @" using System; namespace HelloWorld { public static class Hello { public static string SayHello() { return ""HelloWorld""; } } }"); } public void Initialize(GeneratorInitializationContext context) { #if DEBUG if(!Debugger.IsAttached) Debugger.Launch(); #endif } }
over 4 years ago · Santiago Trujillo
4 Respostas
Responde à pergunta

0

como @Yair-Halberstadt mencionó en una respuesta diferente, el error específico enumerado se debe al hecho de que actualmente los proyectos de generación de fuentes deben apuntar a netstandard2.0. Sin embargo, si obtiene el error CS8032 con un ensamblado diferente (por ejemplo Microsoft.CodeAnalysis, Version=3.0.x ... ), su problema probablemente se deba a una discrepancia en la versión del SDK. Por ejemplo, en mi computadora tengo SDK 5.0.302 que tiene la versión 3.10.0 de Microsoft.CodeAnalysis y Microsoft.CodeAnalysis.CSharp . Si bien el proyecto Generator usa nuget para obtener estos paquetes, la compilación del proyecto que hace referencia al generador resuelve estos archivos desde el SDK. Es por eso que volver a 3.8.0 ha funcionado para algunos comentaristas, la versión SDK que han instalado contiene 3.8.0 de estas referencias.

over 4 years ago · Santiago Trujillo Relatório

0

Tuve que cambiar de 4.0.0 a 3.9 CodeAnalysis Sharp and Analyzers.

over 4 years ago · Santiago Trujillo Relatório

0

Los generadores de código fuente deben ser .NET Standard 2.0 para ejecutarse en Visual Studio 2019+ o .NET Standard 1.x para ejecutarse en Visual Studio 2017+.

over 4 years ago · Santiago Trujillo Relatório

0

Tengo un generador de fuentes que apunta a netstandard2.0 y net5.0 para soporte de nulabilidad.

 <TargetFrameworks>net5.0;netstandard2.0</TargetFrameworks> <Nullable>enable</Nullable>

y una biblioteca de muestra que apunta a los mismos marcos.

Se bloquea cuando el proyecto se está compilando dentro de Visual Studio, pero se compila correctamente desde la terminal.

Para resolver esto, cambié el marco de destino al hacer referencia a él como un generador con SetTagetFramework y ahora se compila sin advertencias ni errores.

 <ItemGroup> <ProjectReference Include="..\MyGenerator\MyGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" SetTargetFramework="TargetFramework=netstandard2.0" /> </ItemGroup>
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda