
How do you pack a visual studio c++ project for release?我想知道如何制作一个将所有必需的dll文件包含到.exe中的发行版,以便该程序可以在非开发计算机上运行,??而不必在目标计算机上安装Microsoft可再发行组件。 > 不执行此操作,您会收到错误消息,指出应用程序配置不正确,然后重新安装。 您需要将所有项目的运行时库(在C / C下->代码生成)设置为静态链接,该链接与以下默认建筑物配置相关:
与那些库的" DLL"版本相对。 即使这样做,也可能要安装合并模块/框架/等,具体取决于所使用的库。这取决于您的依赖项的静态LIB版本是否可用。 请注意,Microsoft不建议您将运行时静态链接到您的项目中,因为这会阻止Windows Update修复关键的安全错误。如果在主.exe文件和.dll文件之间传递内存,则也存在潜在的问题,就像这些静态链接中的每一个在运行时一样,最终可能会导致malloc / free不匹配问题。 您可以将DLL包含在可执行文件中,而无需将它们编译到.exe中,也无需运行redist工具-这就是我所做的事情,并且似乎工作正常。 美中不足的是,如果要分发各种Windows版本,则需要两次包含文件-较新的OS需要清单定义目录中的文件,而较旧的OS则需要将所有文件都包含在清单中程序目录。 您应该使用静态链接,并在其他依赖项下添加所需的所有库。 如果要查找目标计算机缺少的dll,请使用MSDev随附的depends.exe,但也可以在此处找到。在一些目标计算机上进行测试应该可以告诉您需要与应用程序一起打包哪个dll。 您将寻找静态链接(而不是动态链接) 我不确定静态链接了多少MS可再发行组件。 |