因为"与net50不兼容",安装dotnet工具包时发生错误。

3

我不明白我做错了什么。我正在尝试通过Windows命令提示符安装ElectronNET.CLI包(https://www.nuget.org/packages/ElectronNET.CLI):

dotnet tool install ElectronNET.CLI --version 11.5.1

但是我收到了错误消息:

error NU1202: Package ElectronNET.CLI 11.5.1 is not compatible with net50
(.NETFramework,Version=v5.0) / any. 
Package ElectronNET.CLI 11.5.1 supports: net5.0 (.NETCoreApp,Version=v5.0) / any
The tool package could not be restored.
Tool 'electronnet.cli' failed to install. This failure may have been caused by:

* You are attempting to install a preview release and did not use the --version
option to specify the version.
* A package by this name was found, but it was not a .NET tool.
* The required NuGet feed cannot be accessed, perhaps because of an Internet con
nection problem.
* You mistyped the name of the tool.

我的 .csproj 文件:

<Project Sdk="Microsoft.NET.Sdk.Web">    
  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="ElectronNET.API" Version="11.5.1" />
  </ItemGroup>    
</Project>

我创建了global.json文件,以覆盖我的SDK的全局版本。因为我尝试安装的包针对net5,当前项目版本是net5,但我的全局SDK版本是.net6。global.json:

{
    "sdk": {
        "version": "5.0.103"
    }
}

什么原因导致 NuGet 包管理器认为我正在使用 .NET Framework 的 .net50 版本,而不是 .net5.0?我在哪里可以更改这个版本?
例如,当我创建另一个针对 netcore 3.1 版本的 c# 项目,并使用 ElectronNet API 和 CLI 的 9.31.2 版本时,一切都安装并运行良好。
更新:我使用 nuget.exe update -self 命令更新了 nuget.exe,但新版本仍然出现相同的错误。
更新2:我尝试通过 Visual Studio 安装 CLI 工具。消息更加令人困惑:enter image description here UPD3: 我从计算机中删除了net6预览版sdk,将visual studio更新为16.8.6(然后通过vs安装程序进行了“修复”IDE)。我清除了nuget缓存。看起来我尝试安装的cli工具现在已经安装了,但现在cmd dotnet build失败并显示相同的消息(package ... is not compatible),但现在它说已经安装的nuget包ElectronNET.API 11.5.1与net50不兼容!同时,Visual Studio IDE成功构建并运行此项目(通过IIS Express)!只有当我尝试使用dotnet build时,错误才会神奇地出现在IDE中: enter image description here

找到了类似的问题https://developercommunity.visualstudio.com/t/error-msb4018-the-resolvepackagedependencies-task/1266042,但没有解决方案。

然后我基于.NET 5创建了一个新的干净的Blazor项目。Visual Studio成功构建它,但是dotnet build却不行。它会显示以下信息:

C:\Program Files\dotnet\sdk\5.0.103\Microsoft.Common.CurrentVersion.targets(1180,5): 
error MSB3644: The reference assemblies for .NETFramework,Version=v5.0 were not found. 
To resolve this, install the Developer Pack (SDK/Targeting Pack) for this
framework version or retarget your application. You can download .NET Framework
Developer Packs at https://aka.ms/msbuild/developerpacks

根据此帖子 框架.NETCore,版本=v5.0的参考程序集未找到,我发现在C:\Program Files (x86)\Reference Assemblies\Microsoft\FrameworkC:\Program Files\Reference Assemblies\Microsoft\Framework中都没有.net5文件夹。我重新安装了Visual Studio和net5,Sdk出现在C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v5.0中,但构建错误仍然存在。显然,dotnet将我的<TargetFramework>net5.0</TargetFramework>视为net50(.NETFramework,版本=v5.0),我不知道为什么。

2
NuGet包管理器认为我正在使用.NET50而不是.NET5.0?再看一下错误消息。 "net50"就是.NET 5.0。虽然命名方式令人困惑,但如果您查看纯英文名称,它应该有助于解决差异。错误消息告诉您涉及的目标运行时版本,您(显然)正在尝试使用.NET Core(.NET Standard?)库与.NET Framework程序集。 - Peter Duniho
@PeterDuniho 谢谢,但我清楚地看到了NuGet的提示:它告诉我使用的是.NET Framework而不是.net。但正如您所看到的,我使用的是.net5版本的项目,而不是.NET Framework。 - Zhuravlev A.
3个回答

1

虽然这不是一种通用的解决方法,但或许可以帮助某些人。 我成功地构建了我的项目,但是我的电脑上的 dotnet.exe 仍然表现得非常奇怪和不稳定,我的意思是有时候项目仍然无法构建。 我使用了 Perry Qian-MSFT 的以下建议:

  • 删除全局的 nuget.config
  • 删除所有 nuget 缓存文件
  • 重新安装、修复、重启 Visual Studio 和 .NET5 SDK
  • 全局安装 ElectronNET.CLI,而不是本地安装
  • MSBuildSDKsPath 变量值设置为 .NET5 SDK 文件夹(注意:我的环境变量中缺少此变量)
  • 定期重新启动 Windows(我使用的是 Windows 7)
没有这些步骤有所帮助。然后我尝试创建一个样例项目,远离我的工作文件夹,欢呼声——dotnet build成功构建了新的.net5.0项目。然后我尝试将整个工作文件夹移动到不同的目录中,在一些失败的变体之后,它意外地成功构建了。然后我又多次移动文件夹,有时候移动项目成功构建,有时候则不成功。最后,我将工作文件夹移回项目中,并确信它可以正常工作,并提交更改。

P.S.: 看来我需要一个新版本的Windows... 感谢Perry Qian-MSFT的建议。


1

我曾遇到与 dotnet-t4 不兼容 .net6 的类似错误。

enter image description here

问题出在环境变量 MSBuildSDKsPath 指向了一个旧的 sdk.. 手动修复为与 global.json 中引用的当前 sdk 匹配的路径即可解决该问题。


0

这不是用于VS项目的NuGet包,而是用于dotnet cli工具的包。

因此,正确的安装方法是使用cmd将其安装到全局dotnet cli中。

1)管理员身份运行CMD

2)运行以下命令进行安装:

enter image description here

dotnet tool install --global ElectronNET.CLI --version 11.5.1

enter image description here

此外,还有类似的问题


谢谢,我看到它无法安装到VS项目中。但是正如我之前提到的,最初我尝试通过Windows命令提示符安装软件包。就像你建议的那样。但在我的机器上无法运行,即使以管理员身份运行cmd也不行。 - Zhuravlev A.
1
尝试以下步骤来解决问题:1)关闭VS,删除C:\Users\xxx\AppData\Roaming\NuGet下的全局nuget.config文件,然后重新启动VS以重新生成新文件。2)删除C:\Users\xxx\.nuget\packages下的所有缓存文件。完成以上步骤后,再次尝试安装,并不要忘记添加--global开关。 - Mr Qian
1
在我的电脑上,我只有 C:\Program Files\dotnet\ 路径下的 dotnet cli。请检查您的操作系统环境变量 MSBuildSDKsPath 是否设置错误。参考此链接。另外,当您输入 dotnet --version 命令时,是否显示版本号为 5.0.103?此外,请额外安装 Win10 SDK,可能会遇到类似的问题 - Mr Qian
1
以管理员身份打开CMD,然后运行 dotnet tool uninstall --global ElectronNET.CLI 命令。此外,您可以使用 dotnet tool list --local 命令来检查 ElectronNET.CLI 工具包的信息。您可以在 此文档 中的清单下卸载任何有关它的信息。我认为您需要卸载本地工具 ElectronNET.CLI。我的猜测是您有两个版本,一个在本地,另一个在全局。您需要将它们全部卸载,然后安装到全局。 - Mr Qian
最后,您可以打开控制面板-->程序和功能,然后右键单击相关的 .NET Core 开发人员 SDK-->修复。 - Mr Qian
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接