我继承了一个 .NET Framework 4.8 应用程序,我可以使用 Visual Studio 对其进行编译,但是当尝试使用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) 或多或少手动创建了一个 SDK 样式的 csproj。
无论如何,没有SDKdotnet
以 .NET Framework 为目标,并且不知道如何处理基于 .NET Framework 的网站、ASP.NET csprojs、WPF/Windows Forms csprojs、类库 csprojs 等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)