在Mac上使用.NET 4.x在Unity中

15

如何在 MAC 上使用 .NET 4.x 并使用 VSCode 作为编辑器!

我已经在Unity中设置了以下选项:

enter image description here

在VSCode中,我遇到了以下错误:

找不到框架“.NETFramework,版本=v4.7.1”的参考程序集。要解决此问题,请安装此框架版本的 SDK 或 Targeting Pack,或将您的应用程序重新定向到您已安装有 SDK 或 Targeting Pack 版本的框架版本。请注意,程序集将从全局程序集缓存 (GAC) 解析,并将用于替换参考程序集。因此,您的程序集可能无法正确地针对您计划的框架进行定位。 无法加载项目文件'/Data/unity_learn/RIG/Assembly-CSharp.csproj'。 /Data/unity_learn/RIG/Assembly-CSharp.csproj

/Users/doekewartena/.vscode/extensions/ms-vscode.csharp-1.16.0/.omnisharp/1.32.4/omnisharp/msbuild/15.0/Bin/Microsoft.Common.CurrentVersion.targets(1195,5): 错误: 未找到 .NETFramework,Version=v4.7.1 的参考程序集。要解决此问题,请安装此框架版本的 SDK 或定位包,或将应用程序重新定位到安装了 SDK 或定位包的框架版本。请注意,程序集将从全局程序集缓存 (GAC) 中解析,并将被用作参考程序集的替代。因此,您的程序集可能无法正确地针对您打算使用的框架进行定位。 我找不到 Mac 版本的 4.x 下载。

https://visualstudio.microsoft.com/vs/mac/ - Terrance
不幸的是,VS Code 对 .Net Framework 项目的支持非常有限,请参见此处以获取一些解决方法。 - Jayendran
3个回答

23

Omnisharp默认使用dotnet,如果它可用,这不足以满足您的需求。要使omnisharp使用mono(其中包含所需的配置文件),您需要:

  1. 安装mono 5.8或更高版本。我建议使用homebrew进行安装:brew install mono
  2. 在VSCode的用户设置文件中,强制omnisharp使用全局mono安装:"omnisharp.useGlobalMono": "always" (auto

VSCode中的输出应该显示类似以下内容

[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
    Located 2 MSBuild instance(s)
        1: Mono 15.0 - "/usr/local/lib/mono/msbuild/15.0/bin"
        2: StandAlone 15.0 - "/Users/x/vscode/extensions/ms-vscode.csharp-1.17.1/.omnisharp/1.32.8/omnisharp/msbuild/15.0/Bin"

[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
    Registered MSBuild instance: Mono 15.0 - "/usr/local/lib/mono/msbuild/15.0/bin"
如果您在执行此操作后仍然遇到问题(例如选择了错误的mono安装),您可以通过设置以下方式,强制omnisharp使用homebrew的mono:
"omnisharp.monoPath": "/usr/local/"
或者使用特定的mono安装:
"omnisharp.monoPath": "/usr/local/Cellar/mono/5.14.0.177/"

安装Mono 5.8或更高版本。您是指5.18吗?我找不到更高的版本。 - bentwonk
这就是我们所有人的答案!甚至适用于.NET 7.1.3。 - Narc0t1CYM
2
谢谢。在Visual Studio Code中安装Mono并将“omnisharp.useGlobalMono”首选项从“auto”更改为“always”是我所需的修复方法。 - Jakey
1
这个解决方案在 Linux 上也起作用。谢谢! - Tristan Shelton
这在2021年的MacOSX和Unity上仍然对我有效。 - vikkio

0

你必须使用.NET Core而不是.NET Framework,Core版本仅为2.1。

请查看这个类似的问题,不幸的是。

在这里

前两个答案将告诉你需要知道的内容。


-1

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