Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
部署c#应用程序-用户需要安装.net framework吗?_C#_Java_.net_Frameworks_Cross Platform - Fatal编程技术网

部署c#应用程序-用户需要安装.net framework吗?

部署c#应用程序-用户需要安装.net framework吗?,c#,java,.net,frameworks,cross-platform,C#,Java,.net,Frameworks,Cross Platform,嘿,伙计们,我刚刚用c#编写了一个应用程序,准备部署它。以前从未部署过c#应用程序 我部署了它,VC#输出了一个.application文件、应用程序文件夹和一个安装程序。我的一个用户运行了安装程序(Windows 7),并被提示下载/安装.net framework,这需要10分钟以上的时间。我的应用程序如此简单,这是不可接受的 此外,如果可能的话,我需要这个应用程序能够在MacOSX和linux上运行。我应该用Java来写这篇文章吗(我的计划很糟糕)。我的选择是什么?C#被编译成在上运行的字

嘿,伙计们,我刚刚用c#编写了一个应用程序,准备部署它。以前从未部署过c#应用程序

我部署了它,VC#输出了一个.application文件、应用程序文件夹和一个安装程序。我的一个用户运行了安装程序(Windows 7),并被提示下载/安装.net framework,这需要10分钟以上的时间。我的应用程序如此简单,这是不可接受的

此外,如果可能的话,我需要这个应用程序能够在MacOSX和linux上运行。我应该用Java来写这篇文章吗(我的计划很糟糕)。我的选择是什么?

C#被编译成在上运行的字节码,而虚拟机是.NET framework的核心。因此,是的,您需要.NET framework来运行它

大多数当前版本的Windows(XP、Vista、7等)都预装了某些版本的.NET framework,因此用户无需下载和安装它。但是,您可能使用了(某些)用户的计算机上尚未安装的版本

对于Linux和Mac OS X有,这是一个.NET的开源实现,但它不包含Microsoft的.NET包含的所有内容,因此您的程序可能无法在Mono上完全工作


使用Java并不是一个真正的解决方案,因为用户需要下载并安装JRE(Java运行时环境)来运行Java程序,这与.NET framework非常相似。如果您使用Java,一个优势是Java比.NET更具跨平台兼容性(Microsoft对在Windows以外的任何平台上运行.NET都不感兴趣)。

.NET应用程序需要.NET框架。Java应用程序需要JRE。你们的应用程序很简单,因为.NET为你们做了很多工作。很多公司在C++中编写桌面应用程序,但是你必须注意跨平台问题。

< P>是的,任何编译在托管运行时(.NET或MMO-CLR,java JVM)上运行的语言,都需要安装运行时。C#应用程序可以编译为在.NET CLR上的Windows上运行,或者在您提到的所有平台上运行,而不是在Mono运行时上运行。或者,Java应用程序将编译为在Java JRE上运行,Java JRE也与您提到的所有平台兼容


因此,无论使用哪种语言,都可能会有额外的安装开销,而使用哪种语言,您都可以实现所需的功能。

为了使用应用程序,您需要在客户端系统上安装.NET

至于跨平台运行,这取决于应用程序的编写方式,可能简单,也可能困难

你可能想看看Silverlight。这在OS X上直接受支持,并通过Moonlight在Linux上运行

另一种选择是在其他平台上运行.NET应用程序。

C#应用程序需要在本地计算机上运行CLR(.NET)的实现才能运行。Java应用程序将需要JVM的实现,因此它实际上没有什么不同。在Windows上,我希望大多数人都能安装.NET

看看Mono项目在Linux和Mac上的运行情况:

可以考虑的是使用一个旧版本的.NETFramework来确保最大数量的人安装了.NET框架。如果您不需要新奇的新功能,我会使用.NET3.5甚至2.0。例如,它可能已经安装在Windows7上了

由于Windows7用户必须下载该框架,我假设您当前的目标是.NET4,这意味着您必须使用VisualStudio2010(或express版本)。下面是一个链接,告诉您如何针对不同版本的框架:

一个关于MNO的快速注释,它是一个优秀的跨平台选项,但在这里,它不支持Windows演示基础(WPF)GUI框架。您必须使用Windows窗体或为不同的平台创建不同的前端

如果您想创建Linux GUI(也可在Windows和Mac上使用),可以尝试GTK#:

对于Mac本机GUI,您可以查看MonoMac:

MonoDevelop是跨平台.NET开发的优秀IDE(它将读取您的VC#项目文件):


与Java一样,.Net语言需要安装运行时。完整的.Net框架有时对于小型应用程序来说太大了,因此有一个更小的版本称为compact framework,占地面积更小,安装和下载速度更快。你可以在网站上阅读。正如其他答案所指出的,大多数最新版本的Windows都附带了各种版本的.Net framework,因此并非每个用户都需要此安装


就您的跨平台需求而言,Mono允许在Linux上运行.Net应用程序,我不确定是否在OSX上运行它们。我的假设是你不能。不幸的是,您的跨平台需求使.Net成为一个糟糕的选择,您应该选择Java。

其他人给了您复杂的答案。这是我的简单答案。NET框架需要运行.NET应用程序,Java也需要JVM(正如MCain所说)。从Windows Vista开始,Microsoft包括Windows内部构建的.NET Framework。此外,.NET还有从1.0到4.0的版本。对于Vista和Windows 7,默认情况下安装.NET 3.5。我认为您的应用程序是针对.NET 4.0的,这就是为什么Windows 7用户需要安装.NET framework的原因。对我来说,如果我必须编写一个简单的程序,我将使用.NET 2.0(更高版本=更大的库等),这样我的用户(如果他们是Vista或Windows 7)就不必再次安装.NET来运行我的软件。您可以从Visual Studio的“新建项目”窗口中选择要针对的.NET版本。

您可以在“属性”选项卡中更改目标框架。如果在VS2008中启动项目,默认值为.net 3.5,VS2010为.net 4.0。我