Сгенерированный на C# исходный код на самом деле не генерируетсяC#

Место общения программистов C#
Anonymous
Сгенерированный на C# исходный код на самом деле не генерируется

Сообщение Anonymous »

Я впервые работаю над генерацией кода C#. Я считаю, что у меня есть правильная настройка и функциональный базовый генератор, но, похоже, он на самом деле не выводит сгенерированный код.
Они ключевые части моей основной программы выглядят так :

Код: Выделить всё

namespace ArincParser
{
public static partial class Program
{
public static void Main(string[] args)
{
PrintHello();
}

static partial void PrintHello();
}
}
Мой генератор содержит это:

Код: Выделить всё

namespace VulcanGenerator
{
[Generator]
public class DummyGenerator : ISourceGenerator
{
public void Execute(GeneratorExecutionContext context)
{
context.AddSource("Dummy.g.cs", @"
namespace ArincParser;

public static partial class Program
{
public static partial void PrintHello()
{
Console.WriteLine(""HELLO\n"");
}
}
"
);
}

public void Initialize(GeneratorInitializationContext context)
{
}
}
}
Файл моего основного проекта содержит следующее:

Код: Выделить всё

  
                      OutputItemType="Analyzer"
ReferenceOutputAssembly="false"/>
Файл проекта для моего генератора выглядит следующим образом:

Код: Выделить всё



netstandard2.0
true




all
runtime; build; native; contentfiles; analyzers; buildtransitive





Когда я запускаю сборку, я вижу, что VulcanGenerator собирается, но сгенерированная функция не выполняется. Я включил параметр EmitCompilerGeneratedFiles и теперь вижу сгенерированный каталог в выходном каталоге моей сборки, но на самом деле в него не помещаются никакие файлы.
Не знаю, чего мне не хватает и как продолжить отладку. Любая помощь, которая может быть оказана, будет оценена по достоинству. Спасибо!


Подробнее здесь: https://stackoverflow.com/questions/783 ... -generated

Вернуться в «C#»