![](/img/trans.png)
[英]Can I build ASP.NET Core web application using Microsoft Dotnet CLI?
[英]How can I build a .NET Framework 4.8 application using the dotnet CLI?
我繼承了一個可以使用 Visual Studio 編譯的 .NET Framework 4.8 應用程序,但是當嘗試使用dotnet
CLI 應用程序編譯它時,我從外部依賴項中使用的所有類型都收到 CS0246 錯誤。 原來的錯誤信息,對不起德國人:
Archiver\Archiver.cs(2,7): error CS0246: Der Typ- oder Namespacename "log4net" wurde nicht gefunden (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis).
運行dotnet --list-sdk
我得到以下輸出:
3.1.301 [C:\Program Files\dotnet\sdk]
5.0.402 [C:\Program Files\dotnet\sdk]
我多次嘗試重新安裝和修復 .NET Framework 4.8,但這並沒有解決任何問題。
我需要做什么才能讓 CLI 意識到框架的位置並希望修復我的錯誤?
你不能。
很復雜,請看下文。
dotnet
是 .NET Core/.NET 5 及更高版本的 CLI。
它從未與 .NET Framework .csproj 項目兼容,也永遠不會。
(這很復雜,請參見下文。)
您正在尋找的答案基本上是:要從命令行構建您的 .NET Framework 項目/解決方案,請使用 MSBuild(或者,如果您真的,真的,真的必須使用 Visual Studio, devenv
)。
您可以構建一個新的“SDK 風格”項目,以 net48 或類似的. 這些項目是隨 .NET Core 引入的,大多數 .NET Framework 項目都不是這種類型。 據我所知,Visual Studio 中沒有任何模板為 .NET Framework 項目生成它們,因為它們不是為它構建的。 例如,當在一個中使用實體框架 NuGet 包時,該工具不會像通常那樣安裝和集成,因為 NuGet 在 .NET Framework csprojs 和“SDK 樣式”csprojs 之間的集成完全不同。 如果您有這種類型的項目,那么您可能 a) 創建了一個 .NET Standard 項目,b) 創建了一個 .NET Core 項目並使其也net48
,或者 c) net48
創建了一個 SDK 樣式的 csproj手。
無論如何, dotnet
沒有針對 .NET Framework 的 SDK,它不知道如何處理基於 .NET Framework 的網站、ASP.NET csprojs、WPF/Windows Forms csprojs、類庫 csprojs 等.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.