Wix安装程序:如何在同一安装包中为Win7和Win10创建开始菜单快捷方式?
Win7中快捷方式的“开始”菜单使用层次结构,而Win10中的快捷方式使用平面结构。我正在寻找有关如何在WIX安装程序项目中编写代码的帮助,如果操作系统为Win7,该项目将创建分层快捷方式结构,如果操作系统为Win10,则创建平面结构 在WIX中,开始菜单快捷方式是使用ID为“ProgramMenuFolder”的目录元素定义的(例如,请参阅)。我发现的所有文章都不止一次地定义了这个元素。每当我尝试两次定义此元素时(例如,在不同的片段、功能、组件内部),就会收到各种错误消息,包括蜡烛错误“Duplicate symbol”目录:ProgramMenuFolder“found” 我的问题是,如果安装在Win7上,是否可以让同一个WIX内置MSI安装程序创建一个分层的开始菜单快捷方式结构,而如果安装在Win10上,是否可以创建一个平面的开始菜单快捷方式结构?如果可以,您能否提供执行此操作所需的WIX代码的详细信息 塔克斯Wix安装程序:如何在同一安装包中为Win7和Win10创建开始菜单快捷方式?,wix,shortcuts,Wix,Shortcuts,Win7中快捷方式的“开始”菜单使用层次结构,而Win10中的快捷方式使用平面结构。我正在寻找有关如何在WIX安装程序项目中编写代码的帮助,如果操作系统为Win7,该项目将创建分层快捷方式结构,如果操作系统为Win10,则创建平面结构 在WIX中,开始菜单快捷方式是使用ID为“ProgramMenuFolder”的目录元素定义的(例如,请参阅)。我发现的所有文章都不止一次地定义了这个元素。每当我尝试两次定义此元素时(例如,在不同的片段、功能、组件内部),就会收到各种错误消息,包括蜡烛错误“Dup
Ian其与操作系统版本无关 因为烛光错误意味着您试图在同一项目中设置“ProgramMenuFolder”目录两次 当您在不同的片段、功能、组件中使用此目录时,请尝试使用目录属性(directory=“ProgramMenuFolder”)
如果要将其用作层次结构,则此目录应仅位于“TARGETDIR”目录下,与所有其他预定义目录相同。这花了一些时间,但以下是我解决问题的方法。在使用VS2010安装程序的Win7中,我的安装包(即MSI文件)添加的快捷方式嵌套如下:
All Programs
CompanyName
ProductName
Version#
App.exe
App.exe.config
App.pdf
问题是Win10不支持上面的分层/嵌套结构。您可以得到的最佳结构是平面结构,如下所示:
All Programs
Product Name - Version#
App.exe
App.exe.config
App.pdf
因此,我希望我的WIX安装程序在Win7上安装时使用分层/嵌套的快捷方式结构,但在Win10上安装时,使用平面快捷方式结构。虽然花了一些时间,但我能够使用两个功能元素(每个元素都有自己的条件元素)使某些功能正常工作。第一个功能使用分层快捷方式Win7和更早版本操作系统的艺术菜单快捷方式结构。第二个功能为Win8和更高版本操作系统使用平面开始菜单快捷方式结构。简言之,第一个功能元素设置“级别=0”,然后仅当操作系统为Win7或更早版本时才使用条件元素设置“级别=1”。类似地,第二个功能元素设置“级别=0”,然后使用仅当操作系统为Win8或更高版本时,才设置“LEVEL=1”的条件元素。此解决方案仍有一些问题需要纠正,需要花费太多时间才能纠正,最后我放弃了它以获得更简单的解决方案
我试图将Win7安装过程调整到Win10,这导致了“开始”菜单快捷方式的问题。解决方案是改变我的想法,将Win10的安装过程调整到Win7。更具体地说,编写WIX程序以安装Win10强制实施的“开始”菜单平面快捷方式结构非常容易。此“开始”菜单平面快捷方式结构也适用于Win7和更早版本的操作系统。因此,我的解决方案只是对所有受支持的操作系统使用相同的“开始”菜单平面快捷方式结构
一个刚开始学习WIX的人的悲惨故事:):)
伊恩