这可能是一个愚蠢的问题,但是我所有的尝试都尝试了Google失败。问题是:如何开发不需要预装的Windows应用程序?我想创建在没有.NET框架或类似内容的Windows的旧版本下运行的应用程序。

谢谢你,埃沃尔夫

有帮助吗?

解决方案

首先,以母语为单位的程序,例如C ++,无CLR。

其次,禁用清单并避免链接外部DLL(例如STDC或MFC)。

其他提示

旧版本的Windows是什么意思?
自Windows 2003和.NET 1.1以来,.NET框架是Windows的一部分。
因此,如果您针对Windows 2003更新的Windows版本,则可以确定.NET可用。

也有解决方案 自动链接/包装 .NET产品,因此您无需运送任何重新分配。

更新:
我刚刚发现 单核细胞增多症 允许您将整个运行时链接到可执行文件中。
他们称之为该功能 .
阅读更多有关此的信息 这里.

使用Delphi-尽管IDE的较新版本具有一些奇怪的错误,但很容易创建不需要重新分布的本机Windows应用程序。比C ++/Win32更容易使用。

编辑: 正如埃沃尔夫(Ewolf)指出的那样,尽管最初的问题标记为.net,但他不需要.NET。

简而言之,一些较旧的机器(例如WIN95/98/2000)可能没有安装运行时。由于您指定了.NET,因此我假设您要使用.NET构建一个应用程序,但是有一个大,但是,您需要事先安装.NET运行时,您可以执行.NET应用程序。您可以通过两种方法轻松解决这一点:

  • 手动安装.NET运行时或
  • 使用自定义安装程序脚本,该脚本可以检测是否已安装.NET运行时,以安装.NET运行时重新分布。

如果您谈论的是本机应用程序,例如C/C ++,则最佳采用途径(避免依赖和最小化DLL的数量)是在RAW Winapi32中开发它,仅使用标准DLL,这是许多Windows机器的标准DLL将有commctrl.dll,user32.dll,advapi.dll姓名。最终结果将是较小的可执行文件。当然,您可以通过将DLL链接在一起以形成一个大猛mm象可执行文件来捆绑其他DLL。

我建议您使用 WTL, ,这是一个轻巧的C ++框架。实际上,它实际上仅比Win32 API一步一步,因此您获得的依赖性很少。 WTL需要您可以静态链接的ATL框架,这意味着您只需要运送EXE即可。

另一个值得一看的框架是 QT. 。但是,这确实需要您在应用程序中运送一些DLL。 QT是一个很棒的框架,我认为您会发现它比WTL更具生产力(当然取决于您的应用需求。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top