Ich versuche einen Quellgenerator zu erstellen. Im Moment nur die grundlegendste statische Methode, die "Hello World" zurückgibt.
Das Generatorprojekt wird erstellt, aber der generierte Code ist nicht verfügbar, der Debugger wird nie gestartet und die Build-Ausgabe wird angezeigt
CSC: Warnung CS8032: Eine Instanz von Analyzer Generator.StaticPropertyEnum.helloWorld kann nicht aus ... \ bin \ Debug \ net5.0 \ Generator.StaticPropertyEnum.dll erstellt werden: Datei oder Assembly 'System.Runtime, Version = 5.0 konnte nicht geladen werden .0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a 'oder eine seiner Abhängigkeiten. Die angegebene Datei wurde vom System nicht gefunden..
Microsoft.CodeAnalysis.CSharp
undMicrosoft.CodeAnalysis.Analyzers
Microsoft.Net.Compilers.Toolset
Visual Studio: Version 16.8.3
.NET SDK: 5.0.101
Generator.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>
Testen Sie 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>
Generator
[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
}
}
Quellgeneratoren müssen .NET Standard 2.0 sein, um in Visual Studio ausgeführt zu werden.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen