Fer*_*xxo 6 c# runtime compilation roslyn .net-core
海呀!我最近看到在 .NET Core 5 中不推荐使用 CSharpCodeProvider。我想知道是否有一种聪明的方法可以将多个文件组合到一个 dll 中,我可以使用 Rosyln 来加载它。我不想坚持使用 .Net Framework 4.7,因为这是我正在开发的程序的重要组成部分。
我的代码过去几乎就是这样
string Files[] = Directory.GetFiles("xxxxx/bin/Debug/net5.0/Scripts", ".cs");
Parameters = new CompilerParameters(new string[1] {"xxxxx/bin/Debug/net5.0/Program.dll"}, "xxxxx/bin/Debug/net5.0/Scripts/Output/Scripts.dll");
return new CSharpCodeProvider().CompileAssemblyFromFile(Parameters, Files).CompiledAssembly;
Run Code Online (Sandbox Code Playgroud)
在 Rosyln 中最有效的方法是什么?
参考:https : //github.com/dotnet/runtime/issues/18768#issuecomment-265381303 (PlatformNotSupportedException)
Nick Polyak 在代码项目上写了一篇完整的文章:使用 Roslyn 将代码编译成单独的网络模块并将它们组装成动态库,并在 GitHub 上提供完整的源代码完整的源代码。
虽然这可能不完全是您正在寻找的内容,但它应该可以帮助您开始了解 Roslyn 概念,如何CSharpCompilation从 a创建 aSyntaxTree并将其发送到 a Stream。
| 归档时间: |
|
| 查看次数: |
295 次 |
| 最近记录: |