这是我几天来一直在努力解决的问题,现在束手无策。我正在使用 Wise Installation Studio 创建 MSI,但我敢打赌它可以用任何 MSI 创作程序进行复制。我已经为那些希望使用我发布的 MSI、DLL 或 WSI 文件进行复制的人创建了一个测试示例。
预期结果: 两个 hello world 提示,然后是常规 UI 屏幕以开始安装过程。
这是我目前的设置: 开发箱: - 明智的安装工作室 7.4.0.214 - 在 UAC 关闭的情况下运行的 Win7 x64,
测试箱: - Windows XP SP3 - Windows 安装程序 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
最佳答案
我认为问题是由这些 DLL 的处理方式引起的。安装的 DLL 存储在二进制表中,并在安装过程中自动提取。它是本地的,所以它按预期工作。
从安装中调用自定义 DLL 很可能在安装过程中使用了不正确的路径来提取 DLL。它可能是非管理员用户无法访问的每台计算机位置。
尝试使用支持 Unicode 字符的代码页构建 MSI(您可以设置 MSI 语言)。另外,尝试创建一个日志并发布实际的 DLL 路径。
https://stackoverflow.com/questions/4999011/
相关文章:
sql-server-2005 - SQL Server 2005 Unicode字符串排序问题
macos - 如何在 OS X 上从 gethostname() 获得一致的结果?
google-maps - 谷歌地图 API 最大坐标长度?
maven - 如何在 Maven 中将依赖类包含到 war 项目的 WEB-INF/classes
svn - .htaccess 文件中的 If 语句,仅在特定目录中启用密码保护
visual-studio-2010 - TFS Team Build MSTest 运行持续时间太
ruby-on-rails - rails : running code once after lo
c# - 如何在 C# 中从 IntPtr 获取 byte[]