c# - 如何使用 dotnet CLI 构建 .NET Framework 4.8 应用程序?
问题描述
我继承了一个可以使用 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 项目生成它们,因为它们不是为它构建的。例如,当使用 Entity Framework NuGet 包时,工具不会按照通常的方式安装和集成,因为 NuGet 在 .NET Framework csprojs 和“SDK 样式” csprojs 之间的集成完全不同。如果您有这种类型的项目,您可能 a) 创建了一个 .NET Standard 项目,b) 创建了一个 .NET Core 项目并使其也成为 target net48
,或者 c) 或多或少地手动创建了一个 SDK 样式的 csproj .
无论如何,没有dotnet
针对 .NET Framework 的 SDK,也不知道如何处理基于 .NET Framework 的网站、ASP.NET csprojs、WPF/Windows Forms csprojs、类库 csprojs 等。
推荐阅读
- angular - 无法使用嵌入式 setInterval 进行观察以在测试中工作
- php - 将 PHP MMddyyyyHHmmss 中的日期格式化为 mdy
- python - 如何在 Vertex AI 中为预测输入编码二进制数据
- java - 如何避免将硬编码值发送到 mySQL 数据库
- ios - Swift - 更新绑定
从 View 扩展以编程方式存储值 - authentication - 如何登录到我在本地主机上查看的站点?
- python - 如何制作一个喜欢的 discord.py?
- installation - 在安装构建器中启动预安装代码
- css - 如何实现类似于 Todoist.com ap 中的滚动,其中日期在滚动
- sql - 获取具有最高值的行 - 如果多行采用另一个条件