我有一个奇怪的要求,即在不捆绑 .Net 框架的情况下发布应用程序(以节省内存占用和带宽)。
这可能吗?客户可能会或可能不会在他们的系统上安装 .Net 运行时。
做 Ngen 会解决这个问题吗?我一直在寻找类似发布 C++ 应用程序的旧方法(使用链接器仅链接您需要的二进制文件)。
不使用 Ngen 的一种选择可能是使用 .Net Framework 3.5 SP1“客户端配置文件”发布。这是 .Net Framework 的子集,用于构建客户端应用程序,可以作为单独的、更小的包下载。
请参阅此处的BCL 团队博客和此处的Scott Guthrie的详细信息。
在这种情况下,事实上的标准解决方案是您的客户应该拥有正确版本的 .Net 框架,只要它是 Windows 更新的一部分。因此,您的安装程序应检查您在客户端计算机上使用的 .NET 版本的可用性,并建议从 Microsoft 下载它。这将阻止您的公司通过您的渠道传输它并确保您的应用程序具有正确的基础架构,
你检查过蝾螈吗?远程软件
如果您的软件需要 .NET,那么您的最终用户将需要相同版本的 .NET。您不能像使用 MFC 或 Delphi 那样将 .NET“链接”到可执行文件中以创建单个 .exe。如果您的安装程序没有安装 .NET 运行时,那么您需要确保用户知道这一点并将他们指向 Microsoft 的 .NET 下载。
您可以使用“客户端配置文件”,它是用于桌面应用程序的 .NET Framework 的子集。客户端配置文件的大小约为 20 MB
您还可以包含在 VS 中创建的引导程序“setup.exe”。它会检测你是否有必要的 .net 版本,如果有,启动安装程序;如果没有,它会提示您下载框架。