Сгенерированный на 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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