可能是一个简单的学习问题,但我正在尝试使用新的Roslyn源代码生成器自动为.NET Framework 4.7.2生成一些源代码(目标是MVC,但如果在我的测试控制台应用程序中运行成功,我会很高兴)。
这是我的代码:
[Generator]
public class GenerateCommand : ISourceGenerator
{
public const string TestCode = @"
namespace Test
{
public static class Hello
{
public static string World = ""Hi from generated code."";
}
}";
public void Initialize(InitializationContext context) { }
public void Execute(SourceGeneratorContext context)
{
context.AddSource("Hint_Hello_World", SourceText.From(TestCode, Encoding.UTF8));
}
public void Test()
{
var x = Test.Hello.World; // <-- Refuses to build.
}
}
}
包版本为 Microsoft.CodeAnalysis.CSharp v3.7.0(以及相关的 Roslyn 东西)。
如果我针对 .NET Core,这似乎是我能做到的最简单的方式,而且它似乎可以正常工作,只是当我尝试将它添加到框架项目中时,它什么也不做。没有错误,没有输出消息,只是没有运行或生成源代码。
任何帮助将不胜感激。
Core
部分被移除是为了避免“混淆客户”的营销目的。尽管有关统一性的营销宣传,实际上是通过将任何可能迁移到 .NET Core 的 API 移动并将其重命名为 .NET 5 来废弃 .NET Old。 - Panagiotis Kanavos