找不到指定的 SDK“Microsoft.NET.SDK.WorkloadAutoImportPropsLocator”。.net core 5 MacOS

Kaz*_*zar 5 .net-core asp.net-core asp.net-core-cli .net-5

我正在使用 macOS Big Sur 和 Visual Studio .net core 5。\n我认为问题是在允许 Visual Studio 安装更新后开始的(我没想到会出现任何问题),几个小时后dotnet命令停止工作。

\n

我发现这是 M1 Mac 上的一个已知问题,当 dotnet 停止工作时,建议使用的版本是 - 5.0.402。\n我卸载了 dotnet 并安装了推荐的版本。

\n

卸载 dotnet 的命令(需要脚本文件):

\n
chmod +x dotnet-uninstall-pkgs.sh \nsudo ./dotnet-uninstall-pkgs.sh\nsudo rm -r /etc/dotnet\n
Run Code Online (Sandbox Code Playgroud)\n

安装较新版本(5.0.402)后,我的项目仍然无法运行,并且在 Visual Studio 中收到此错误:

\n
/usr/local/share/dotnet/x64/sdk/6.0.101/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportWorkloads.props(14,38): error MSB4236: The SDK 'Microsoft.NET.SDK.WorkloadAutoImportPropsLocator' specified could not be found.\n
Run Code Online (Sandbox Code Playgroud)\n

我正在考虑卸载最新的 SDK,但不确定这是否是一个好主意,并且可能会导致 VisualStudio 出现其他问题。

\n
$ ./dotnet-core-uninstall list\n
Run Code Online (Sandbox Code Playgroud)\n

输出(来自 dotnet-core-uninstall 工具):

\n
This tool cannot uninstall versions of the runtime or SDK that are installed using zip/scripts. The versions that can be uninstalled with this tool are:\n\n.NET Core SDKs:\n  5.0.402  (x64)  [Used by Visual Studio for Mac. Specify individually or use \xe2\x80\x94-force to remove]\n\n.NET Core Runtimes:\n  5.0.11  (x64)  [Used by Visual Studio for Mac or SDKs. Specify individually or use \xe2\x80\x94-force to remove]\n
Run Code Online (Sandbox Code Playgroud)\n

请告知如何解决这个问题。

\n

提前致谢!

\n

bas*_*ren 12

在 x64 Mac 上安装 VS2022(v17.0 - build8989)后,我收到此错误,但从命令行构建时没有收到此错误。

事情试图解决这个问题:

  • 遵循上述说明(多次)
  • 从我的系统中删除 (3x) Mono、Xamarin、NuGet、DotNet 和 VisualStudio 的所有痕迹并重新安装 VS2022
  • 设置MSBuildEnableWorkloadResolver = false环境变量
  • 多次重启

以上均无效。我错过了什么? 我设置MSBuildEnableWorkloadResolver = false环境变量的方式错误。

如果打开诊断日志详细程度,构建日志中列出的第一件事将是用于构建的环境变量。我尝试设置此环境变量的方式没有影响 VisualStudio!

经过一番研究,我了解到在MacOS中设置环境变量最系统的方法是通过launchctl:

 % launchctl setenv MSBuildEnableWorkloadResolver false
Run Code Online (Sandbox Code Playgroud)

系统设置环境变量的旧方法是通过 ~/.MacOSX/environment.plist 。然而,这种方法在 OS X Lion 中被删除了。以传统 Unix 方式设置环境变量(.profile.bash_profile.zprofile.zshenv等)仅适用于 shell,不适用于应用程序。


Kaz*_*zar 0

以下是对我解决此问题有用的步骤。

  1. 我按照本指南删除了所有 dotnet 组件。

  2. 我安装了 SDK 5.0.404 安装后dotnet命令不起作用。

  3. 我遵循了这篇文章的建议,它解决了我的问题。我删除了现有的 dotnet 文件并重新创建了它。

希望它对某人有帮助。