旧版本的 .Net 没有安装最新的 Mono?
Older version of .Net not installed with latest Mono?
我一直在使用 Visual Studio Community 2015 开发 .NET 3.5 C# 项目,但我一直打算在 Linux(Ubuntu Gnome 上进行大部分开发15.04) 使用 Mono 和 MonoDevelop。
我是运行最新的稳定版 Mono (4.0.4) 和 MonoDevelop (5.9.6),它支持 .NET 4.5 并且可以毫无问题地打开 VS 创建的解决方案文件。
现在我在 Linux 上编写 C++ 应用程序已有十年的大部分时间,但 C# 和 .NET 对我来说是全新的。所以我 假设 如果我安装了支持 .NET 4.5 的 Mono 版本,我也会得到 .NET 3.5,因为新版本是旧版本的超集——很像 C+ +14 编译器支持 C++03.
然而,情况似乎并非如此,正如 MonoDevelop 所述(在每个项目的 Target Framework 选项下):
- .NET Framework 4.5.1
- 单声道/.NET 4.5
- Mono / .NET 3.5(未安装)
那么我是否必须安装并行的较旧版本的 Mono 才能获得 .NET 3.5 支持,或者我只是遇到了配置问题?
没有配置问题,Mono 在 4.x 版本中放弃了对旧框架的支持。如果您需要针对 3.5 程序集编译,那么是的,您将需要并行安装。
Dropped Support for Old Frameworks
Reference Assemblies
We no longer build the reference assemblies for the .NET 2.0, .NET 3.5
or .NET 4.0 APIs, we now ship binaries of the reference assemblies
(API contracts, without any actual executable code in them).
Mono will now only build the .NET 4.5 assemblies as well as the
mobile-based profiles.
Note: You can still run assemblies compiled for earlier .NET profiles
on Mono, there’s no need to recompile them (they’ll just run on the
.NET 4.5 assemblies instead).
我有一个类似的问题(针对 .NET 4.0 的项目,但现在通过 mono
只有 4.5 可用)。我的解决方法是为 4.0 创建一个符号链接:
在我的 Fedora 32 机器上,这是由
完成的
cd /usr/lib/mono
sudo ln -s 4.5 4.0
这应该有效,因为 (almost) .NET 4 和 4.5 之间没有重大变化 - YMMV
终于,成功了。我将 Visual Studio 用于 Mac - https://www.visualstudio.com/vs/visual-studio-mac/
在“首选项”->“项目”->“.Net 运行时”下,您可以更改默认的 .Net 运行时。默认为 Mono 4.8.0.
它位于 mac 上:/Library/Frameworks/Mono.framework/Versions/4.8.0
从这里您可以下载旧版本的 Mono https://download.mono-project.com/archive/
我从 https://download.mono-project.com/archive/3.12.1/macos-10-x86/ 下载了 3.12.1
并将其复制到 /Library/Frameworks/Mono.framework/Versions/ 文件夹中。
然后您可以在 VisualStudio 中添加 .net 框架并将其设置为默认框架。我的项目然后编译。
我一直在使用 Visual Studio Community 2015 开发 .NET 3.5 C# 项目,但我一直打算在 Linux(Ubuntu Gnome 上进行大部分开发15.04) 使用 Mono 和 MonoDevelop。
我是运行最新的稳定版 Mono (4.0.4) 和 MonoDevelop (5.9.6),它支持 .NET 4.5 并且可以毫无问题地打开 VS 创建的解决方案文件。
现在我在 Linux 上编写 C++ 应用程序已有十年的大部分时间,但 C# 和 .NET 对我来说是全新的。所以我 假设 如果我安装了支持 .NET 4.5 的 Mono 版本,我也会得到 .NET 3.5,因为新版本是旧版本的超集——很像 C+ +14 编译器支持 C++03.
然而,情况似乎并非如此,正如 MonoDevelop 所述(在每个项目的 Target Framework 选项下):
- .NET Framework 4.5.1
- 单声道/.NET 4.5
- Mono / .NET 3.5(未安装)
那么我是否必须安装并行的较旧版本的 Mono 才能获得 .NET 3.5 支持,或者我只是遇到了配置问题?
没有配置问题,Mono 在 4.x 版本中放弃了对旧框架的支持。如果您需要针对 3.5 程序集编译,那么是的,您将需要并行安装。
Dropped Support for Old Frameworks
Reference Assemblies
We no longer build the reference assemblies for the .NET 2.0, .NET 3.5 or .NET 4.0 APIs, we now ship binaries of the reference assemblies (API contracts, without any actual executable code in them).
Mono will now only build the .NET 4.5 assemblies as well as the mobile-based profiles.
Note: You can still run assemblies compiled for earlier .NET profiles on Mono, there’s no need to recompile them (they’ll just run on the .NET 4.5 assemblies instead).
我有一个类似的问题(针对 .NET 4.0 的项目,但现在通过 mono
只有 4.5 可用)。我的解决方法是为 4.0 创建一个符号链接:
在我的 Fedora 32 机器上,这是由
完成的cd /usr/lib/mono
sudo ln -s 4.5 4.0
这应该有效,因为 (almost) .NET 4 和 4.5 之间没有重大变化 - YMMV
终于,成功了。我将 Visual Studio 用于 Mac - https://www.visualstudio.com/vs/visual-studio-mac/
在“首选项”->“项目”->“.Net 运行时”下,您可以更改默认的 .Net 运行时。默认为 Mono 4.8.0.
它位于 mac 上:/Library/Frameworks/Mono.framework/Versions/4.8.0
从这里您可以下载旧版本的 Mono https://download.mono-project.com/archive/
我从 https://download.mono-project.com/archive/3.12.1/macos-10-x86/ 下载了 3.12.1 并将其复制到 /Library/Frameworks/Mono.framework/Versions/ 文件夹中。
然后您可以在 VisualStudio 中添加 .net 框架并将其设置为默认框架。我的项目然后编译。