如何打包visual studio c++项目以供发布?

Translate

我想知道如何制作一个将所有必需的dll文件都包含到.exe中的发行版本,以便该程序可以在非开发计算机上运行,而不必在目标计算机上安装Microsoft可再发行组件。

否则,您将收到错误消息,指出应用程序配置不正确,然后重新安装。

This question and all comments follow the "Attribution Required."

所有的回答

Translate
  1. 选择项目->属性
  2. 选择配置->常规
  3. 在有关如何链接MFC的框中,选择静态链接它。
  4. 选择链接器->输入。下其他依赖,添加您需要您的应用静态链接的任何库。
来源
Trista Lee
Translate

您需要将所有项目的运行时库(在C / C ++下->代码生成)设置为静态链接,该链接与以下默认构建配置相关:

  • 多线程调试/发布
  • 单线程调试/发布

与那些库的“ DLL”版本相反。

即使这样做,根据所使用的库,您可能也必须安装合并模块/框架/等。这取决于依赖项的静态LIB版本是否可用。

来源
Translate

意识到Microsoft不建议您将运行时静态链接到项目中,因为这可以防止Windows Update为它提供服务以修复严重的安全错误。如果在主.exe文件和.dll文件之间传递内存,则也存在潜在的问题,就像这些静态链接中的每一个在运行时一样,最终可能会出现malloc / free不匹配问题。

您可以将DLL包含在可执行文件中,而无需将它们编译到.exe中,也无需运行redist工具-这就是我所做的,而且似乎工作正常。

美中不足的是,如果要分发各种Windows版本,则需要两次包含文件-较新的OS需要清单清单目录中的文件,而较旧的OS则需要程序目录中的所有文件。

来源
Translate

您将寻找静态链接(而不是动态链接)

我不确定有多少MS可再发行版静态链接。

来源
Translate

如果您要查找丢失目标计算机的dll,请使用MSDev附带的depends.exe,但也可以找到它。这里。在一些目标计算机上进行测试应该可以告诉您需要与应用程序一起打包哪个dll。

来源