从VS CodeWindows将Winform解决方案导入MonoLinux

问题描述

我试图将Winform解决方案文件从VS代码(Windows)导入到monodevelop(Linux),但是失败了。错误如下:

Error while trying to load the project '/home/virtuall_kingg/Camera_GUI/Camera_GUI/Camera_GUI.csproj': 
File not found: /home/virtuall_kingg/Camera_GUI/Camera_GUI/Camera_GUI.csproj

我也添加了Camera_GUI.csproj文件,但错误仍然相同。 有人可以指导我如何将解决方案导入mono吗? 这个winform项目已经变成我的脖子上的痛苦。 是从头开始在Ubuntu中使用gtk#构建GUI的唯一方法吗?

解决方法

编辑:现在您可以用.NET 5(所有平台的通用.net框架)替代mono。

您在这里问多个问题。在Linux中,您通过 Mono (有限)支持 WinForms 。根据项目的复杂程度,您可以直接进行移植而无需进行修改。如果有p / Invokes,则不能确定是否可以移植它。

是的,在Linux中,“其他”大选择是Gtk#,它具有悠久的历史。如果您想从头开始移植项目,那将是一个不错的选择,但是它涉及将您的类从与 WinForms 一起移植到 Gtk#的过程,这不是不可能的,但也不是不重要的。这样做的可行性主要取决于该项目的设计水平。您是否将业务逻辑和视图分开?如果答案是否定的,那么这个过程将是乏味的,而且费时费力。

MonoDevelop 是C#的IDE,而Visual Studio for Mac大致是 MonoDevelop 。它当然适用于Linux ...以及 Visual Studio代码。因此,如果只需要将代码移植到Linux,则无需在这方面进行任何更改。

好吧,现在走的路是什么?我认为最好的方法是使用 WinForms 尝试 Mono 。它可能涉及简化用户界面部分中的一些代码,但是肯定是可行的。只需记住您需要安装 Mono ,并且如果您的项目设置为目标.NET Core,则需要从头开始创建另一个项目并将其设置为目标.NET Framework。

现在,具体问题是 MonoDevelop 抱怨缺少Camera_GUI.csproj。这意味着您只选择了几个文件,但没有选择整个解决方案。任何IDE(Visual Studio,Visual Studio Code,Rider ...)都会抱怨同一件事。从解决方案中删除项目,或将项目及其所有文件添加到解决方案所在的目录中。

因此,答案是:如果不需要重新定向项目,则不要进行任何更改。只需将整个项目移到Linux机器或虚拟机上,然后在 Visual Studio Code Rider Rider MonoDevelop 中打开它即可没关系。在IDE中,删除那些在Linux中没有意义的项目(即Windows Installer),然后重新编译并启动该程序。抛光用户界面中需要调整的部分即可。

如果您需要更多帮助,请更加具体,并提供更多信息。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...