![](/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.