我将为拥有WinXP机器的客户端编写一个小型桌面应用程序,他们不会安装.NET框架(至少不适合我).
所以我的选择仅限于C++或VB6,两者都不是很好.我记得当时Mono想出了一个静态编译器,但最近我唯一能找到的就是Miguel de Icaza为了在iPhone上运行应用程序而在游戏引擎上进行静态编译 - 不是我的考虑到了.
有没有任何产品,免费或商业,允许我静态编译我的.net 3.5 winform应用程序?
谢谢
你可以尝试使用Remotesoft Salamander.
它完全符合你的要求.
Mono极大地改进了对Ahead of Time编译(AOT)的支持,假设您愿意/能够以Mono而不是.Net运行时为目标,那么应该可以静态编译几乎任何CIL应用程序.
这是否是一个好主意总体上取决于应用程序和您的约束.
例如,Novell现在发布了MonoTouch,这是一个完全AOT编译和链接的CLI实现,允许.Net应用程序(不仅仅是游戏)在iPhone上针对CocoaTouch框架运行.
这些相同的AOT技术可用于编译Winforms应用程序,该应用程序不需要.Net或Mono运行时作为先决条件.有很多与AOT相关的绩效权衡(正面和负面),所以如果没有尽职调查我就不会前进.
编辑:
回应John Saunders关于"为什么不为他们安装它?"的问题.这实际上提出了一个原因,你可能需要AOT编译.. Bootstrappers.
要安装任何东西,您必须运行可执行文件.您可以分发MSI(将隐式启动msiexec.exe),也可以分发exe.MSI虽然功能齐全,却是一个非常糟糕的开发者体验.因此,您可以使用.NET构建引导程序(AOT编译消除运行时依赖性),在安装应用程序之前安装必要的先决条件(例如.NET).
此外,一些公司可能需要提供可下载的可执行文件,这些可执行文件不需要用户安装任何东西(无声或其他).
还有一个:安装.NET需要管理权限.AOT可能允许您绕过您的应用程序的要求.
同样,这些是否是一个好主意完全取决于应用程序和您的约束.