Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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
在没有.net Framework的情况下运行基于.net的应用程序_.net_Deployment_.net 2.0 - Fatal编程技术网

在没有.net Framework的情况下运行基于.net的应用程序

在没有.net Framework的情况下运行基于.net的应用程序,.net,deployment,.net-2.0,.net,Deployment,.net 2.0,是否有一种方法可以在未安装.net framework的情况下运行基于.net的应用程序。有没有办法做到这一点。有没有一个软件可以做到这一点。商业软件也是可能的 增加: 有人有过使用.NET framework的经验吗?我所知道的.NET framework的唯一替代品是MONO(适用于LINUX) 您可以使用mono来静态链接所有需要的框架DLL 当然,这限制了您对框架的mono实现,它正在变得更好,但在一些地方仍然不完整 更新: 根据您的各种评论,我的最佳建议是使用该框架的2.0版。这将在

是否有一种方法可以在未安装.net framework的情况下运行基于.net的应用程序。有没有办法做到这一点。有没有一个软件可以做到这一点。商业软件也是可能的

增加:


有人有过使用.NET framework的经验吗?

我所知道的.NET framework的唯一替代品是MONO(适用于LINUX)

您可以使用mono来静态链接所有需要的框架DLL

当然,这限制了您对框架的mono实现,它正在变得更好,但在一些地方仍然不完整


更新:
根据您的各种评论,我的最佳建议是使用该框架的2.0版。这将在Windows2000上顺利安装,如果需要,您可以从VisualStudio2008将其作为目标


我对你的windows 2000要求也有点好奇。您是部署到业务环境还是家庭环境

几乎没有家庭用户使用windows 2000。家庭用户最终选择了(不寒而栗的)Windows ME,而Windows ME几乎是在同一时间发布的,因此几乎完全转向了Windows XP。与windows 2000相比,您更可能在家中看到windows 98计算机,甚至连Microsoft都不支持windows 98

另一方面,很多企业仍然大量使用windows 2000计算机。但是业务环境在安装.Net framework时通常不会遇到问题。如果有必要,他们甚至可以通过组策略部署将其自动添加到计算机中。

使用Mono,它由Novell开发,是开源的

编辑:问题是关于在没有安装运行时的情况下运行,而不管“供应商”是什么。即便如此,这里还是有一个指向Mono的维基百科条目的链接。享受


有几种不同的工具,我试过的有:

  • (现在)(现在)
您可以通过搜索“”找到更多信息

我尝试过上面两种方法,它们似乎可以正常工作,但我从未广泛测试过用它们构建的代码。我试了试,主要是出于好奇

我的.NET应用程序主要由IT部门使用。安装.NETFramework对他们来说没什么大不了的

如果您想编写更针对最终用户的软件,则.NET安装可能会将其关闭。

如果您的意思是“我可以运行.NET应用程序而不必安装任何框架吗?”那么答案是“不”,您不能


如果你的意思是“我可以在不安装Microsoft的.NET framework和CLR的情况下运行.NET应用程序吗?”那么答案是只有在你能找到替代方案的情况下,而Mono是我所知道的唯一一款。

你没有提到你希望运行的软件类型,所以我想我会加上我的两分钱

微软已经发布了Silverlight,一个基于.NET的浏览器插件,他们一直在与Novell合作,推出一个基于上述Mono编译器的Silverlight版本,名为Moonlight。Microsoft本机支持Windows和Mac OS X 10.5

如果您想了解更多信息,请访问以下链接:

在完整性方面的兴趣,以及与ReMo的反应一起考虑的事项。


你有没有想过用本机代码编写应用程序?这样,您只需部署exe即可。如果你需要一个RAD环境来提高生产率,那么像Delphi或C++ Builder之类的工具会给你一个非常类似FCL的感觉(Delphi的VCL是安德斯·海尔斯伯格在移动到MS之前建立起来的,所以很可能没有C语言对delphi非常熟悉)

< P>我的团队面临着类似的问题。我们需要在没有可用的.NET框架的Windows PE下运行.NET 3.5 WPF应用程序。我评估了所有选项,发现Xenocode后期构建是最好的

它的GUI有点违反直觉,在让它工作的过程中有一些坎坷,但从那以后它一直是可靠的

如果您这样做,请注意,您需要确保在生成非托管可执行文件之前对代码进行了完全调试,因为您无法调试生成的应用程序(除非您喜欢assembler)


还请注意,嵌入.NET framework会产生一个大的可执行文件~对于2.0来说是20MB,对于3.5来说是~40MB。

当您使用支持.net的操作系统时,这听起来真是太麻烦了

.NET2.0我想现在甚至可以作为Windows更新,它只有26mb,而且你只安装一次。如果你想要的东西是Win32本地的,回到非托管C++。 另请注意:(虽然不是windows 2000,但它提到“不久,微软将为没有.NET Framework版本的XP SP2计算机发布一个超小型下载版”。

是我发现的更好的解释之一:

实际上,这是不可能的。理论上,编译器可以检查 应用程序正在使用的所有类,并将该代码包含在应用程序中 应用程序,并将整个过程编译为本机代码。但是,这仍然没有实现 考虑CLR本身,它包含垃圾等核心功能 收集器、程序集加载器、元数据读取器等。所有这些都是本机的 代码,所以它们必须被复制

此外,并非.NET类中的所有方法都在托管代码中。如果你看 在Reflector中的反汇编代码中,您将看到一些方法被标记 使用MethodImplAttributes.InternalCall标志。这意味着实际的 该方法的实现是CLR内部的。任何编译C#的系统 (或任何其他.NET语言)到本机代码必须复制所有这些, 这将是一个巨大的努力。而由此产生的应用程序可能会非常复杂 大的


如果不想使用.NETFramework,我想最好考虑使用其他编程语言,哪个基因