繁体   English   中英

Dotnet Core 3.1 和 CSC:未定义或导入预定义类型“System.Object”

[英]Dotnet Core 3.1 & CSC: Predefined type 'System.Object' is not defined or imported

我必须扩展一个内部构建系统来编译针对.Net Core 3 的 C# 文件。

到目前为止,系统能够处理源集、引用和 lib 目录,并在其中生成以下命令:

"C:\Program Files\dotnet\dotnet.exe" exec "C:/Program Files/dotnet/sdk/3.1.300/Roslyn/bincore/csc.dll" -nologo -target:library "-lib:C:/Program Files/dotnet/shared/Microsoft.NETCore.App/3.1.4" -r:netstandard.dll C:/Users/kirsch/Documents/Repositories/ComplexProject/lib/csharp/native/VeryComplexLogic.cs -out:C:/Users/kirsch/Documents/Repositories/ComplexProject/default/ComplexProject.net.626a237a/ComplexProject.net.dll

可悲的是,这失败并出现以下错误:

错误 CS0518:未定义或导入预定义类型“System.Object”

我试图寻找解决方案。 建议的解决方案要么提出了一些不相关的建议(比如删除一些生成的目录),要么建议添加引用。 追求后者,我添加了以下参考:

  • netstandard.dll
  • mscorlib.dll
  • System.dll
  • System.Core.dll

然而,引用这些并没有解决问题。

结束我的问题:我缺少哪个参考?

如果它不是参考,那么我还缺少什么?

您需要System.Runtime.dll

请注意,只需提供

/lib:"C:/Program Files/dotnet/shared/Microsoft.NETCore.App/3.1.4"

是不足够的。 这只是一个目录,将在其中搜索引用的程序集。 但是您仍然需要通过/reference (或/r )选项提供每个特定的引用程序集:

/reference:mscorlib.dll /reference:netstandard.dll /reference:System.Collections.dll /reference:System.Console.dll

... ETC

MSBuild 或dotnet.exe为您执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM