1
我正在用WiX构建MSI安装程序以重新分发我的MinGW64应用程序。这需要将MinGW dll与可执行文件一起发送。WiX安装程序和从MinGW重新分发libstdC++ 6.dll
libstdc6.dll文件没有版本化。什么是最干净的方法呢?
我曾尝试:
- 添加一个伴侣文件到DLL组件,指着主应用程序exe文件,这是versionned。然而,维克斯抱怨,我不能一个同伴设置为一个dll
- 把DLL的主应用程序EXE组件,但并不鼓励这样在每一个WiX的常见问题解答,HOWTO和论坛...
- 添加属性
DefaultVersion="!(bind.FileVersion.mainapp.exe)"
到DLL用于覆盖(缺少)dll版本的文件元素。这乍看起来工作,但威克斯是发布与此相关的警告:
C:\用户\艾蒂安\文档\编码\海洋\ ocean.wxs(116):警告 LGHT1103:本对于没有版本的文件“libstdc6.dll”,使用了DefaultVersion'!(bind.FileVersion.mainapp.exe)' 。此文件 的条目将被放置在MsiFileHash表中。对于未版本控制的文件,指定与实际文件不同的版本的 可能导致 在修复期间或修补期间发生意外版本控制行为。 版本资源以消除此警告。
解决此问题的最佳方法是什么?
感谢,
艾蒂安
谢谢! 完全同意,但我不会重新编译libstdC++只是为了添加版本...我试图找到一个手工添加到dll的工具,但似乎没有人能够修改64位gcc二进制文件(不同的格式?) – galinette 2013-07-10 13:05:47