我有一个使用 C# 制作的简单应用程序。
现在我该如何制作它,使其在所有系统上运行。如果 PC 没有安装 .NET 框架 - 它应该只安装程序所需的最低要求。安装 .NET 框架 - 与许多只有几千字节的程序相比,它的大小太大了。也应该保持沉默,只有在需要时才可以。基本上,应用程序应该是轻量级的并且能够在所有 Windows 系统中运行。对接触 Linux 用户不感兴趣。
我应该使用 Mono 项目吗?否则有一种方法可以选择性地预装最小的 .NET 框架。
请指教。
谢谢
看看mkbundle。它将创建一个独立的可执行文件,没有其他依赖项。特别是它既不需要安装 Mono 运行时也不需要安装 .NET 即可执行。
大小可能仍然是一个问题(它可能是几兆字节,甚至是压缩的),因此还有另一个工具可以从程序集中删除您不需要的所有内容:monolinker。
请注意,即使完成所有这些操作,大小也可能不会达到千字节范围。
您可以通过大量工作和 Mono 框架的帮助来做到这一点。有关更多信息,请参阅嵌入 Mono。
综上所述,使用 boostrapper 安装 .NET Client Framework 版本会容易得多。但是您将失去静默安装或“千字节”占用空间的能力。
要运行 .net 应用程序,您需要安装 .net 框架,它应该是完整版或受限客户端配置文件版。
最简单的方法是从 VS 创建一个安装项目并需要您想要的 .net 版本...安装程序应该能够从 Internet 安装 .net 框架,因此您不需要随应用程序一起提供它可以从安装程序的方式。
Mono 不会有什么不同,因为它仍然需要安装在系统上。然而,Mono 具有完整的 AOT 支持,但我不知道这是否会对您有所帮助......无论如何,它仍然是一个巨大的矫枉过正。
如果您需要您的应用程序很小并且在没有任何依赖关系的任何窗口上运行,您应该在 c/c++ 或 vb6 中执行,其运行时随大多数 Windows 版本一起提供。
不幸的是,您不能在没有安装 .NET 框架的机器上运行 .NET 程序,并且可以使程序的安装程序自动下载框架,但不能在 .NET 中下载。