问题描述
我试图将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),然后重新编译并启动该程序。抛光用户界面中需要调整的部分即可。
如果您需要更多帮助,请更加具体,并提供更多信息。