相关疑难解决方法(0)

141
推荐指数
7
解决办法
20万
查看次数

.Net Core 2.1 中的动态代码编译

有没有人设法找到一种解决方法/方法来将一个文件或多个文件或文本动态编译为 .Net Core (2.1) 中的 .dll?

        var csProvider = CodeDomProvider.CreateProvider("CSharp");
        CompilerResults compilerResults = csProvider.CompileAssemblyFromFile(options, files); 
Run Code Online (Sandbox Code Playgroud)

导致 PlatformNotSupportedException 并且似乎 CodeDom 在 .Net Core 中的用途非常有限。查看类似的抱怨并比较.Net Core 2.1.Net Framework 4.7.2中 System.CodeDom.Compiler 的视图。

我们需要能够在现场编写和动态编译自定义代码。我有一种动态加载任何结果 .dll 的方法,但我只需要首先能够获取该 .dll。

目前我能看到的唯一解决方法是创建一个 .Net Framework api/service 来执行此操作。是这里唯一放弃 .Net Core 并转到 .Net Framework 的其他解决方案吗?

注意:我想在代码库中动态执行此操作。因此,“是否可以使用 .net 核心 Roslyn 编译器编译单个 C# 代码文件?”的解决方案 不相关,因为它指出:“要直接调用 Roslyn 编译器,必须使用命令行驱动程序”,这会使我完全走上错误的道路。但是“如何以编程方式使用 Roslyn 编译 C# 文件?” 如果我知道这就是我想要做的,我会提供解决方案。

@Sami Kahmonem 提供的链接到Joel Martinez 在 .Net Core 1 中的解决方案是我用来解决这个问题的。

c# compilation dynamic .net-core

5
推荐指数
1
解决办法
5919
查看次数

我可以使用 csc.exe 将一个 cs 文件编译为 .net 框架中的 dll...但是我如何通过 dotnet cli 在 dotnet core 中执行此操作?

在.net框架中,我可以使用csc.exe将一个cs文件编译为dll文件。

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe /t:library /out:MyCScode.dll *.cs /debug /r:System.dll /r:System.Web.dll /r:System.Data.dll /r:System.Xml.dll
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 dotnetcore 中做到这一点?

c# asp.net-core

3
推荐指数
1
解决办法
1728
查看次数