在生成MergeModule的情况下,Component / @Guid属性是否必须

时间:2015-06-10 11:14:03

标签: wix

在我的组件的.wxs文件中,只有具有单个文件的组件,这是可生成的GUID的情况。 但在我看来,对于.msm(合并模块),应该明确指定组件的GUID。或者我可以自由使用Guid =“*”,那可以吗?

我试过了:<Component Guid="*"> <File Id="$(var.Logger.TargetFileName)" Source="$(var.Logger.TargetPath)" KeyPath="yes" /> </Component>

light 出错,

  

组件的密钥文件的路径没有植根于其中一个   标准目录(如ProgramFilesFolder)

... 我很困惑,因为这条路径植根于ProgramFiles <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="$(var.PlatformProgramFilesFolder)"> <Directory Id="ProductVendor" Name="$(var.BaseProductVendorDirectory)"> <Directory Id="BaseProductDirectory" Name="$(var.BaseProductName)"> <Directory Id="ConfiguratorDir" Name="Configurator" /> </Directory> </Directory> </Directory> </Directory>

1 个答案:

答案 0 :(得分:0)

您应该能够在具有根目录的合并模块中使用自动生成的GUID。但是,在修复bug http://wixtoolset.org/issues/3810/之前,WIX 3.6中引入的更改可能会使这变得不可能。

另见http://wixtoolset.org/issues/2353/

还有http://sourceforge.net/p/wix/mailman/message/29956690/(点击查看整个帖子链接查看完整讨论)。