我可以在 Mac 上的 docker 容器中 运行 Visual Studio 和 .Net Framework 吗?

Can I run Visual Studio and .Net Framework in a docker container on Mac?

我有一个 Visual Studio Code 应用程序(Angular/.Net Core Web Api 应用程序)用于工作,我可以开发、调试和 运行 它在我的个人 Mac 当我通过 VPN 进入公司网络时。

我在公司网站上还有一台台式工作 PC 和一台远程工作服务器,我可以通过 RDP 连接到它来完成我的所有工作,但我更喜欢我的个人 Mac!

我现在需要创建一个 .Net Web Api 应用程序(非 .Net Core),我的 .Net Core 应用程序需要通过 http 调用(对于不会 运行 在 .Net Core 上),所以我在我的一台 Win PC 工作机器上创建了一个 Visual Studio .Net Framework web Api 应用程序,我可以 运行 两个项目并排(Visual Studio 代码和 Visual Studio) 在我的电脑上但不是我的 Mac.

有什么方法可以让 .Net Framework 应用程序在我的 Mac 上运行?前任。在 Docker 容器中,或者甚至 运行 将应用程序放入容器中,以便我的 .Net Core 应用程序可以调用它?

我有另一个想法但不确定是否可行 - 当我 运行 我的 Mac 上的 .Net Core 应用程序时,我通过 VPN 连接到我的公司网络。如果我 运行 我的工作桌面或远程服务器上的 .Net Web 应用程序,我可以从我的 Mac 连接到它吗?

Visual Studio 代码是一个 JavaScript 应用程序,这使得它非常便携(但也有点慢)。 Visual Studio 框架是另一种动物;一个非常领土的。针对 .NET 框架的已编译应用程序绝对不会 运行 MacOS,或 Linux,或 Solaris 或......任何不是 Windows 的东西. .NET 核心可移植到 MacOS。

根据这个 post (),可以选择使用 Mono 重新编译代码,运行 它在 Mac 上。不幸的是,它不支持完整的 .NET Framework,并且可能需要对代码进行一些重要的修改才能使其正常工作。如果你走这条路,你将被限制在 Mono 支持的框架区域,或者你将不得不维护同一代码库的 2 个不同版本。这两个选项对我来说都不是很好。

至于 运行ning 在 Docker 中,那是行不通的。 Docker 由于使用内核名称空间为进程和其他系统资源提供隔离,因此从根本上与主机操作系统相关联。它不提供 .NET Framework 需要的相同内核 API。

如果您绝对确定要在 Mac 上进行开发工作,最好的选择可能是使用 运行 是 Windows 的完整副本的厚虚拟机。这有一个明显的缺点,那就是成本要高得多(就所需的系统资源和软件许可成本而言),而且你最终还是会使用 Windows(所以你还不如只使用 RDP 到真正的 Windows 机器)。可能不是您希望得到的答案(我希望有人列出我错过的一些选项),但我认为您最终会在 Windows 中做一些工作。

你不能 运行 .NET Framework,因为它使用操作系统的层架构,当 运行ning 时,很多库都在迁移,现在 运行ning在 .NET core via nuget recomendation is use oficial net core image from microsoft 或 运行 中,您 docker 通过 Microsoft 服务器系统。