Visual c++ visualc&x2B+;不使用VCRedist_x86.exe的可再发行文件
我在一个受到严格限制的环境中开发,但是开发人员也有严格的控制权 VCRedist_x86.exe是一个4Mb的可再发行版本,没有乐趣(传输需要四个小时)。我真的更喜欢重新发布MFC90.dll、msvcm90.dll、msvcp90.dll和msvcr90.dll,这更像是2Mb。然而,他说: 不支持重新分发构建时没有清单的C/C++应用程序。VisualC++库不能被C/C++应用程序使用,而不需要将应用程序绑定到这些库。有关详细信息,请参阅 我最初计划将DLL复制到程序的工作目录中,但似乎没有成功 在这个充满活力的新世界里工作 我的下一个猜测是将文件填充到WinSxS目录所需的注册表项存储起来,然后自己填充(而不是使用4meg程序) [编辑]该软件经常更新,因此DLL比静态链接更受欢迎。[/编辑]Visual c++ visualc&x2B+;不使用VCRedist_x86.exe的可再发行文件,visual-c++,dll,winsxs,Visual C++,Dll,Winsxs,我在一个受到严格限制的环境中开发,但是开发人员也有严格的控制权 VCRedist_x86.exe是一个4Mb的可再发行版本,没有乐趣(传输需要四个小时)。我真的更喜欢重新发布MFC90.dll、msvcm90.dll、msvcp90.dll和msvcr90.dll,这更像是2Mb。然而,他说: 不支持重新分发构建时没有清单的C/C++应用程序。VisualC++库不能被C/C++应用程序使用,而不需要将应用程序绑定到这些库。有关详细信息,请参阅 我最初计划将DLL复制到程序的工作目录中,但似乎没
如何成功分发必要的文件,同时降低开销?为编译器属性页中的“运行时库”设置指定/MT(多线程)。这将静态链接到运行时库,因此您不必安装可再发行程序。将它们作为专用程序集安装。请看这里: 请注意,如果您不需要提供的所有DLL,您可以修改清单文件以仅引用您需要的文件。我们使用以下方法: 本质上
- 不要在exe文件中嵌入清单李>
复制C++ DLL及其清单到应用程序的目录。<李> - 从所有清单(您的和Microsoft的)中删除“publicKeyToken”李>
- 如有必要,请更改应用程序清单文件中的版本信息以匹配Microsoft清单文件(反之亦然)
因此,总结一下:使用默认值嵌入清单是安全的。将CRT清单+DLL文件直接复制到可执行文件的目录中,无需编辑。就这样。兼容Win2k+。嗨,尤金:你是说如果你用本地CRT/MFC/etc DLL和清单文件部署你的应用程序,影响这些文件的Windows更新会在你的安装目录中找到它们并更新它们?!?!