C# 从VS代码(windows)将winform解决方案导入mono(linux)

C# 从VS代码(windows)将winform解决方案导入mono(linux),c#,ubuntu,mono,monodevelop,gtk#,C#,Ubuntu,Mono,Monodevelop,Gtk#,我试图将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 我还添加了

我试图将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\u GUI.csproj
文件,但错误仍然相同。 有人能指导我如何将解决方案导入mono吗? 这个winform项目已经成为我的心病。
在Ubuntu中从头开始使用gtk构建GUI是唯一的方法吗?

编辑:现在你可以用.NET 5取代mono,这是所有平台的通用.NET框架

你在这里问了很多问题。在Linux中,通过Mono对WinForms的支持(有限)。根据项目的复杂程度,可以无需修改即可移植它。如果有p/Invokes,那么您肯定无法将其移植到端口

是的,在Linux中,“另一个”大选项是Gtk,它有着悠久的历史。如果您想从头开始移植项目,这是一个不错的选择,但它需要将您的类从使用WinForms移植到Gtk#,这不是不可能的,但也不是微不足道的。其可行性主要取决于该项目的架构有多好。您是否将业务逻辑和视图分开?如果答案是否定的,那么这一过程将是乏味的,而且艰难而漫长

MonoDevelop是C#的IDE,而Visual Studio for Mac大致是MonoDevelop。它当然可以在Linux中工作。。。以及Visual Studio代码。因此,如果您只需要将代码移植到Linux,就不需要在这方面做任何更改

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

现在,具体的问题是MonoDevelop抱怨缺少
Camera\u GUI.csproj
。这意味着您只选择了几个文件,而不是整个解决方案。任何IDE(VisualStudio、VisualStudio代码、Rider…)都会抱怨同样的事情。从解决方案中删除项目,或者将项目及其所有文件添加到解决方案所在的目录中

因此,答案是:如果不需要重定项目目标,请不要更改任何内容。只需移动到Linux机箱或虚拟机,将整个项目放在Visual Studio Code RiderRiderMonoDevelop中打开就行了,这并不重要。从IDE中删除那些在Linux中没有意义的项目(即windows installer),然后重新编译并启动程序。抛光那些需要调整的用户界面部分,就这样


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

至于您的问题,我很想在MonoDevelop中创建一个新的(空的)项目,然后将您的所有代码文件和引用添加回。不要把时间浪费在死胡同上。检查备选方案,您还需要了解Linux文件系统的不同之处。@John我试图将解决方案从vscode导入monodevelop。@John您确定,这会有帮助吗?VS code有一个
[visual studio code]
标记,visual studio有一个
[visual studio]
标记。至于我的建议是否有用:也许,我不确定。这正是我想做的。