运行动态编译的C#代码时出错

我在.Net Core 3.1项目中动态地编译了c#代码。我将结果另存为.dll文件,并试图在另一个项目中使用它。在目标项目中,将其添加为参考并尝试使用时,出现此错误

the type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Private.CoreLib,Version=4.0.0.0

我试图将代码编译为netstandard 2.1。此外,在System.Private.CoreLib的编译过程中还引用了_references,但该版本比4.0.0.0更新。

_references = new List<MetadataReference>();
_references.Add(MetadataReference.CreateFromFile(typeof(object).Assembly.Location));
_references.Add(MetadataReference.CreateFromFile(Assembly.Load("netstandard,Version=2.1").Location));
 _references.Add(MetadataReference.CreateFromFile(typeof(Newtonsoft.Json.JsonConvert).GetTypeInfo().Assembly.Location));

我该如何解决这个问题?

nasogu 回答:运行动态编译的C#代码时出错

您需要引用netstandard库,该库在技术上没有定义任何类型,以匹配您的typeof(object)

    var netstandard = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.GetName().Name == "netstandard").Single()
本文链接:https://www.f2er.com/2721356.html

大家都在问