运行基于.net的应用程序没有.NET Framework

有没有办法运行基于.NET的应用程序没有安装.NET框架。 有没有办法做到这一点。 有没有一个软件可以实现这一点。 商业软件也是可能的。

添加:

有没有人有任何VMWare瘦客户机的经验?

有几个不同的工具在那里,我试过的一对夫妇是:

  • XenoCode Postbuild (现在是Spoon Studio )(现在是TurboStudio )
  • 蝾螈.NET连接器

您可以通过search“ .NET链接器 ”来find更多信息。

上面的两个,我试过,似乎工作正常,但我从来没有广泛testing与他们build立的代码。 我主要是因为好奇才试过的。

我的.NET应用程序主要由IT部门使用。 安装.NET框架对他们来说不是什么大问题。

如果你想编写针对最终用户的软件,那么.NET安装可能会closures它们。

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

当然,这限制了你对框架的单一实现,这个框架越来越好,但是在一些地方仍然不完整。


更新:
根据你的各种意见,我最好的build议是使用2.0的框架。 这将毫无问题地安装在Windows 2000上,如果需要,可以从Visual Studio 2008中将其定位。


我也有点好奇你的Windows 2000的要求。 你正在部署到商业或家庭环境?

几乎没有家庭用户有Windows 2000.家庭用户结束了(不寒而栗)的Windows ME,而是在同一时间发布,因此几乎完全转移到Windows XP。 你更有可能在windows 2000中看到windows 98的机器,甚至微软也不支持windows 98。

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

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

编辑:问题是关于运行没有安装的运行时间,无论“供应商”。 即使如此,这里是一个链接到莫诺的维基百科条目。 请享用。

http://en.wikipedia.org/wiki/Mono_(software);

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

它的graphics用户界面有点不直观,而且在运行的道路上出现了一些颠簸,但是从那以后它一直是可靠的。

如果你走这条路线,build议你在生成非托pipe可执行文件之前,确保你的代码已经完全debugging完毕,因为你不能debugging生成的应用程序(除非你喜欢汇编程序)。

另外请注意,embedded.NET框架使得一个很大的可执行文件。 2.0〜20MB,3.5〜〜40MB。

你没有提到你想要运行的软件types,所以我想我会增加我的两分钱。

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

如果您想了解更多信息,请点击以下链接: http : //en.wikipedia.org/wiki/Microsoft_Silverlight http://www.microsoft.com/silverlight/

当您使用支持.net的操作系统时,这听起来像是比它的价值更麻烦。

.net 2.0我认为这些日子甚至只是一个Windows Update,它只有26mb,而且你只安装一次。 如果你想要的东西多数民众赞成在本地回到非托pipe的C + +。

还可以看看: SmallestDotNet (尽pipe不是Windows 2000,它提到“很快,微软将发布一个超小型的下载XP SP2的机器,没有版本的.NET框架”)。

如果不想使用.NET框架,我认为最好考虑使用其他编程语言,它会生成一个独立的可执行文件。 像delphi那样的东西,或者如果奖品很重要的话,拉撒路。 但我相信还有其他的select。

我知道.NET框架的唯一替代方法是MONO(用于LINUX)。

如果你的意思是“我可以运行一个.NET应用程序而不必安装框架?” 那么答案是否定的,你不能。

如果你的意思是“我可以运行一个.NET应用程序,而不必安装微软的.NET框架和CLR? 那么只有当你能find另一个select的时候,答案才是唯一的,Mono是我唯一知道的。

为了完整性和与MONO的回应一起考虑。

你有没有想过可能用本机代码编写应用程序? 这样你就可以简单地部署你的exe。 如果你需要一个RAD环境来提高工作效率,那么像Delphi或者C ++ Builder这样的工具会给你一个非常类似FCL的感觉(Delphi的VCL是在移动到MS之前由Anders Hejlsbergdevise的,所以C#感觉不太熟悉Delphites)

这是我find的更好的解释之一(其中有很多)

实际上,这是不可能的。 理论上,编译器可以检查应用程序正在使用的所有类,并将该代码包含在应用程序中,然后将整个代码编译为本地代码。 但是,这仍然没有考虑到包含垃圾收集器,程序集加载器,元数据阅读器等核心function的CLR本身。所有这些都是以本地代码的forms存在的,因此它们将不得不被复制。

另外,并不是.NET类中的所有方法都在托pipe代码中。 如果您查看Reflector中的反汇编代码,您将看到一些方法被标记为MethodImplAttributes.InternalCall标志。 这意味着该方法的实际实施是CLR的内部。 任何将C#(或任何其他.NET语言)编译为本地代码的系统都必须复制所有这些,这将是一个艰巨的任务。 而由此产生的应用程序可能会相当大。

老问题,但它可以帮助其他读者

您可以使用IKVM的二进制文件运行Mono / .Net / Java应用程序,而无需任何预安装的框架。 只要记住:

您应该能够成功执行它。 (在Windows .NET上,请记住将IKVM dll复制到当前目录。)

请参阅文档以获得更好的观点。

它被称为静态链接.net框架。 单声道允许它,也有其他供应商。 一种情况是,如果你需要运行在Windows PE。