请问windows visual studio上编译的C#程序是不是能在linux上运行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问windows visual studio上编译的C#程序是不是能在linux上运行?相关的知识,希望对你有一定的参考价值。

比如ubuntu上安装了mono后是否可以直接运行vs上编译的C#程序,比如一个带界面的程序?

.net framework只支持windows系统,C#写的程序不能直接运行在linux系统。
不过,用 mono 写出来的可以直接运行在Windows、Linux、Max OS X、FreeBSD等系统上。
参考技术A 理论上是可以的:
举几个例子:
C#写的XNA游戏可以跨平台到XBOX游戏机上运行,因为微软提供了xbox上的framework
同样C#写的移动平台程序也可以跨平台运行
unity3d 里面写的程序也可以跨平台(比如android,iphone)都可以,当然是因为unity3d的编译有关,而且在u3d开发里面C#相对于一个脚本语言
虽然android 虽然不被linux承认,不过也有千丝万缕的关系吧。

话说回来,为什么C#这么强悍的跨平台能力,这么久不能跑到linux下去?
因为微软赚钱的不是C# (他提供免费的编辑器C# express),赚钱的是他的服务器(server 2003,server 20**系列,包括主机硬件) 数据库 (server 2005 server 20XX ),如果把linux下的framework推出了,那么他的服务器没人用,数据库没人买,因为linux下有很多开源的东西啊(如mysql),那他就是真的做了雷锋,搬石头砸自己的脚了
参考技术B 这样要看你linux上是否安装了对应版本的.NET运行环境。如果安装了,就可以运行。 参考技术C 不可以吧!linux和windows平台不一样。。即使安装了。net环境 还有一些系统文件是不一样的。我怀疑。net都不一定安装的上! 参考技术D 肯定不能……呵呵,c++的语法都不同

将 Visual Studio C++ 项目“移植”到 Linux 上编译的最简单方法是啥?

【中文标题】将 Visual Studio C++ 项目“移植”到 Linux 上编译的最简单方法是啥?【英文标题】:Easiest way to "port" a Visual Studio C++ project to compile on Linux?将 Visual Studio C++ 项目“移植”到 Linux 上编译的最简单方法是什么? 【发布时间】:2014-02-05 02:06:58 【问题描述】:

一直在开发一个 Visual Studio (2012) C++ 项目,想知道将它复制到 Linux 以便我可以在那里重新编译整个项目的最方便的方法是什么?假设 C++ 是平台无关的。

是否可以手动将所有 .h 和 .cpp 文件复制到一个文件夹中,将该文件夹复制到 Linux,然后以某种方式创建一个脚本(makefile?)来控制文件的编译方式?我不太确定 makefile 是否是我所需要的——但是否有任何机制可以让我从终端上的一个命令编译整个项目?

【问题讨论】:

这个问题可能对***.com/q/12875013/1741542有帮助 code.google.com/p/make-it-so 为大家谋福利 【参考方案1】:

对于物理部分,最简单的解决方案是从版本控制系统中获取源代码。这将处理 .cpp 和 .h 文件中的 \r\n -> \n 翻译。

在 linux 方面,几乎任何构建工具都优于原始 makemake 真的是构建系统的汇编语言;您的工具可能会生成 makefile 作为中介,但不要试图维护它。

【讨论】:

取决于构建过程的复杂性。如果只是一次性对所有 .cc 文件进行编译器,那么 makefile 可能是最简单的方法。【参考方案2】:

是的,复制文件(或如@MSalters 所说 - 签出新副本),然后为 Linux 构建工具构建一个替代 .vcxproj。请注意,Visual Studio 项目文件实际上只是一种非常奇特的 makefile。

最简单的makefile只是一个文件列表(甚至是文件类型)和一个在它们上运行的命令。编写好之后,构建就像针对 .sln 文件运行 MSBuild 一样简单。

因此,您需要决定在 Linux 上使用哪个构建系统 - CMake 是一个 makefile 生成器,several other systems 可用。

Someone has made a tool 解析 VS 项目文件并可以从中生成一个 makefile,但它不支持 VS2012(你可以解决这个问题,贡献)

【讨论】:

以上是关于请问windows visual studio上编译的C#程序是不是能在linux上运行?的主要内容,如果未能解决你的问题,请参考以下文章

请问Visual Studio Code(不是Visual Studio)怎么设置文件关联。

请问visual studio 2005里Windows窗体里的4列5行的组件怎么添加,四列名分别为1,2,3,4

OpenCV 程序无法在 Visual Studio 2010 上编译

在Windows10下在WSL中使用visual studio code

使用 Boost 在 Visual Studio10 上编译和使用 JSONCPP

将 Visual Studio C++ 项目“移植”到 Linux 上编译的最简单方法是啥?