这是我几天来一直在努力解决的一个问题,现在我的智慧结束了。我正在使用Wise Installation Studio创建一个MSI,但我敢打赌它可以用任何MSI创作程序重新编写。我为那些希望使用我发布的MSI,DLL或WSI文件进行重新编写的人创建了一个测试样本。
预期成果: 两个hello world提示然后在常规UI屏幕上启动安装过程。
这是我目前的设置: 开发箱: - Wise Installation Studio 7.4.0.214 - 关闭UAC运行Win7 x64,
测试盒: - Windows XP SP3 - Windows Installer v4.5.6001.22159 - .Net Framework v4.0
以下是我的测试用例:
我已经尝试过强制短路径并传递到用户数据文件夹的备用路径,但没有任何作用。任何人都知道为什么会这样,以及如何解决它? 我在这里包含了我用于此测试的所有文件,其中包括错误消息的屏幕截图,msi和msi.xml,wsi文件,helloworld.dll(使用rundll32 helloworld.dll测试,HellowWorld)和上面每个测试用例的日志。
http://dl.dropbox.com/u/1797288/error.zip
MSI / WSI文件中需要更改哪些内容,以便#3能够正确处理“从安装中调用自定义DLL”操作?
谢谢, 亚伦P
答案 0 :(得分:0)
我认为问题是由这些DLL的处理方式引起的。安装中的DLL存储在二进制表中,并在安装期间自动提取。它是原生的,所以它按预期工作。
从安装中调用自定义DLL很可能在安装期间使用不正确的路径来解压缩DLL。它可能是非管理员用户无法访问的每台计算机位置。
尝试使用支持Unicode字符的代码页构建MSI(您可以设置MSI语言)。另外,尝试创建日志并发布实际的DLL路径。