Visual Studio 2022 Mac M1 .NET 6,无法加载文件或程序集'Microsoft.Build。

8
我在使用Visual Studio 2022 Mac M1芯片上的.NET 6时遇到了问题。 当我想要构建或清理我的WebApi项目时,我会收到以下错误提示。
The operation failed due to an internal error: Could not load file or assembly 'Microsoft.Build, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. An attempt was made to load a program with an incorrect format.

以下是我关于 dotnet --info 命令的内容:

.NET SDK (reflecting any global.json):
 Version:   6.0.200
 Commit:    4c30de7899

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  12.2
 OS Platform: Darwin
 RID:         osx.12-x64
 Base Path:   /usr/local/share/dotnet/x64/sdk/6.0.200/

Host (useful for support):
  Version: 6.0.2
  Commit:  839cdfb0ec

.NET SDKs installed:
  3.1.416 [/usr/local/share/dotnet/x64/sdk]
  5.0.405 [/usr/local/share/dotnet/x64/sdk]
  6.0.102 [/usr/local/share/dotnet/x64/sdk]
  6.0.200 [/usr/local/share/dotnet/x64/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 3.1.22 [/usr/local/share/dotnet/x64/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.14 [/usr/local/share/dotnet/x64/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 6.0.2 [/usr/local/share/dotnet/x64/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.22 [/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.14 [/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 6.0.2 [/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App]`

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download

我尝试了许多事情,但都没有起作用。非常感谢任何帮助!


3
我遇到了同样的问题。 - Jonas
尝试创建一个新的asp.net core Web应用程序并检查是否构建和运行成功?如果仍然遇到相同的问题,可能是您的VS安装中缺少或损坏了某个文件,您可以尝试修复VS并重新安装它。 - Zhi Lv
谢谢大家的评论!我已经尝试了很多次,但都没有成功。我重新安装了VS,重新安装了.Net SDK,但它们都没有起到帮助作用。我尝试使用NuGet安装Microsoft.Build,但还是遇到了同样的错误。我在Youtube上看到有人运行它而没有任何问题:( - Ner
MSBuild是Microsoft和Visual Studio的构建平台。在Visual Studio安装程序中,导航到“单个组件”,并找到MSBuild的复选框。当您选择任何其他工作负载进行安装时,它会自动选择。如果仍然无法正常工作,由于此问题涉及Visual Studio,建议您在Visual Studio论坛上发布您的问题,例如此线程 - Zhi Lv
我也遇到了同样的问题。我有两个线索(实际上是两个),@Ner,如果你想测试一下。 第一个:只有dotnet 6在M1 Mac上得到了Microsoft的支持。因此,如果您的项目针对dotnet 5,则似乎仅使用VSPreview安装程序提供的sdk无法正常工作。 第二个:我认为我的VSPreview正在尝试使用x64文件夹中的dotnet加载软件包。因此,我从计算机中删除了所有sdk,并仅安装了来自VSPreview安装程序的一个(dotnet6)。然后软件包就被正确加载了。 如果这些中的任何一个有效,请告诉我,我会将其添加为答案。谢谢。 - Rick Wolff
3个回答

3
我将SDK位置设置从以下位置更改:

/usr/local/share/dotnet/x64/dotnet

为了

/usr/local/share/dotnet/dotnet

2
我遇到了同样的问题,但最终解决了它(我的电脑也是Mac M1芯片)。
不过我采取了几个行动,我不确定哪一个是修复问题的原因。
我认为我的问题与同时安装了“Visual Studio 2019 for Mac”和“Visual Studio 2022 Preview for Mac”有关。
我已经卸载了两者。然后我删除了所有SDK文件并进行了清理。
/usr/local/share/dotnet/x64

并且

/usr/local/share/dotnet/

这里可能会有个人差异,我使用 this article 发现了这些路径。
然后我只安装了“Visual Studio 2022 Preview for Mac”,带有其net6.0 sdk。
打开我的解决方案,但它不起作用(因为我的解决方案是net5.0)。
然后我安装了旧版的“Visual Studio 2019 for Mac”(以获取x64 net5.0 sdk的安装)。
当我在新的“VS 2022 Preview”中打开解决方案时,它现在可以工作了。
在某个时刻,我在首选项中更新了.NET Core SDK位置:

VSPreview Preferences, then SDK Locations, then .net core

将以下路径中的内容复制到 /usr/local/share/dotnet/dotnet (我认为这是 net6 的位置)。
我知道我的回答不够精确,但我依靠社区的帮助来测试这些步骤,然后我可以在此进行编辑。 :)

0

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