首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >32位MSI:将64位应用程序的快捷目标路径转换为32位路径

32位MSI:将64位应用程序的快捷目标路径转换为32位路径
EN

Stack Overflow用户
提问于 2010-07-18 09:32:37
回答 2查看 5.2K关注 0票数 1

我正在处理一个部署项目(基于Wix),该项目用于部署一个应用程序,以便使用AutoCAD运行,并在传递自己的参数时创建AutoCAD的acad.exe快捷键。

为此,有一个自定义操作dll (C++),它迭代Autocad的注册表项,获得"acad.exe“位置,并在运行时使用MyInstaller.msi中的MSI方法创建/更新快捷方式。

问题:

在x64位操作系统(如Windows 7 )上,自定义操作从注册表读取正确的“acad.exe”位置,即C:\Program \AutoCAD 2010\acad.exe,并在运行时更新msi中的快捷方式属性。但是,当msi完成创建快捷方式时,路径将转换为32位程序文件,即C:\Program (x86)\AutoCAD 2010\acad.exe,这实际上并不存在。

我的工作:

由于我的msi是32位(x86),所以我创建了一个带有属性Win64=Yes的单独组件,并修改了自定义操作以更新/创建该组件的快捷方式。但是,快捷方式中的目标路径仍被转换为C:\Program (x86)。

我知道如果我将MSI转换为x64操作系统,这可能会得到解决,但目前,我不能做这么大的改变。

有什么方法可以让32位的msi创建包含x64操作系统路径的快捷方式?

任何帮助都将是非常感谢的。

非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-20 10:48:16

好的,我解决了:

的问题是,64位操作系统上的32位MSI 将路径(在快捷表中)转换为32位等效路径,即我们的自定义操作dll从64位注册表键获得AutoCAD的路径为C:\Program \AutoCAD 2010\,然后将该路径注入到MSI的快捷表和目录表中。但当MSI编写快捷方式时,它将其转换为C:\Program (x86)\AutoCAD 2010。

我们不能在32位MSI中有64位组件,但是副Versa是可能的,也就是我们可以在64位MSI中拥有32位组件。

然而,在我的例子中,我必须使用64位组件作为快捷方式,其他组件将保持32位。

,因此我已经将32位MSI转换为64位MSI,在包信息中添加了Plantform=x64。并将组件声明为Win64=Yes.

这解决了我的问题,现在我找到了正确的捷径。

由于这一点,现在我有两个独立的安装程序,即每32位和64位分别。

诚挚的问候

法鲁克

票数 0
EN

Stack Overflow用户

发布于 2010-07-18 14:25:11

你正向上游游去,在这一条上与MSI对抗。(虽然我能理解为什么。)

从官方角度来看,MSI从来都不是平台上的秘密。我假设您使用自定义操作读取注册表值,因为MSI的AppSearch/Reglocator将将您限制在WoWSys64节点上。在此之后,MSI将取代即使是硬编码的对程序文件的引用,作为应用程序兼容性方法的一部分(基本上,microsoft假设您不知道自己在做什么,并且他们知道您真正想做的是什么)。

非正式地读这条帖子,找出我想要解决的黑客。总结是,如果您将C:\Program \转换为一个短路径( C:\Progra~1 ),那么MSI不够聪明,无法确定您所指的是什么,因此它不能替代值。

http://www.joyofsetup.com/2010/03/27/wix-msbuild-v2-0-and-x64-systems/

请注意,这是一个黑客,没有办法知道微软是否会“修复它”在未来的版本。我唯一能想到的其他方法就是不要使用快捷方式表,而是编写自定义操作来为您创建快捷方式。

如果你不想对MSI游泳,考虑一下这个解决办法。创建一个小的64位EXE (是的,您可以将64位或AnyCPU exe部署到Program,x86是一个x86 MSI ),充当AutoCAD的前端启动程序。让它查询注册表并找到文件,然后启动它或显示一条消息,说明如果找不到AutoCAD是不可用的。

如果你这样做,你的安装就会变得更干净。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3274999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档