繁体   English   中英

MacOS/VisualStudioCode/Omnisharp 缺少 .NET Framework 4.6.1

[英]MacOS/VisualStudioCode/Omnisharp missing .NET Framework 4.6.1

我在 macOS Catalina 上运行:

  • vscode 1.48.1
  • ms-do.nettools.csharp 1.23.1(下面是 omnisharp)
  • Mac 版 Visual Studio 8.7.3
  • Mono MDK 6.12.0.91

我有一个针对 .NET 4.6.1 的项目。 我在这个项目中使用 vscode。 由于 Xamarin 的原因,我还有另一个使用 Visual Studio For Mac 的项目。 不幸的是,更高版本的 Visual Studio For Mac 似乎至少需要 Mono MDK 6.10.x。 该版本似乎不支持 .NET 4.6.1。 这意味着 Omnisharp 无法加载 vscode 项目的项目。 我已经尝试将 Mono MDK 降级到 vscode 项目,但没有成功。 我所有的谷歌搜索都让我进入了 Windows 的开发者包的下载页面,它有 .NET 框架 4.6.1,这是无用的,或者通过设置环境变量FrameworkPathOverride强制 Omnisharp 在其他路径上看到 4.6.1 框架的方法, 到我的系统上不存在的适当位置。 在这一点上,我能看到的唯一途径是将我的 4.6.1 应用程序重新定位到更高版本的框架,但这将永远需要。 我真正需要的是 macOS 的 4.6.1 框架。 哈尔普?

编辑:是的,我知道 .NET 用于 Windows 和 Mono 用于其他所有内容。 Mono 提供与 .NET 版本的兼容性,Omnisharp 过去已妥善处理此问题。 该问题仅在更新 Visual Studio For Mac 和 Mono MDK 后出现。

编辑:已解决,有关详细信息,请参阅已接受的答案

这个问题似乎源于 Omnisharp 决定在内部包含单声道。 它们默认使用该版本的编译器,该版本不适用于 .NET Framework 而是 dotnet 核心。 vscode 中有一个设置强制 Omnisharp 使用全局安装的 Mono。 将其设置为"always"可解决此问题。 打开 vscode 设置并搜索“全局单声道”。 将“Omnisharp:使用全局单声道”设置为“始终”。 或者,打开settings.json文件并添加"omnisharp.useGlobalMono": "always"

万一有人仍然面临这个问题,因为你寻找其他来源来解决这个问题。

  1. 首先遵循@jsimon 的回答。
  2. 我不小心添加了这个设置"omnisharp.useModernNet": true ,它通常表示 .NET 6: This version _does not_ support non-SDK-style .NET Framework projects, including Unity 当我删除此设置时 - 一切都已修复。
  1. 检查您使用哪个单声道的单声道版本(即/Library/Frameworks/Mono.framework/Versions/Current/
  2. 在 VSCode 中编辑settings.json并添加行"omnisharp.monoPath": "/Library/Frameworks/Mono.framework/Versions/Current/"
  3. 仍在settings.json 中,编辑 set "omnisharp.useGlobalMono": "always"
  4. cmd+shift+p并选择Developer: Reload Window

我遇到过同样的问题。 它由@jsimon 的步骤修复。 谢谢!

操作系统:macOS Monterey 版本 12.2 MacBook Pro M1 arm64

VsCode 1.64.0(通用)do.net --version 6.0.101

步骤: 1. 打开 VSCode 2. 代码 -> 首选项 -> 扩展 3. 单击 C# 上的 (wheal) 设置 for Visual Studio Code(由 OmniSharp 提供支持)。 和扩展设置 4. 在 settings.json 中找到编辑,将 "omnisharp.useGlobalMono": "always" 添加到末尾。 如果您有其他设置,您可能需要添加“,” 5. 保存并关闭,然后打开 VsCode 项目。 6. go 返回到 ominsharp 设置 7. Omnisharp:使用 Modern Net,select 使用 .NET 6(在我的例子中)享受!

你不能。

.NET Framework是 Microsoft Windows 独有的。

Visual Studio for Mac 适用于 .NET Core、.NET Standard、Xamarin 和 Mono。

在 Mac 上构建和处理 .NET Framework 项目的唯一方法是使用 Bootcamp 或使用 VM。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM