簡體   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