在组件的.wxs文件中,只有具有单个文件的组件,这是可生成GUID的情况。 但在我看来,对于.msm(合并模块),组件的GUID应明确指定。或者我可以自由使用Guid =“*”,那会好吗?在生成MergeModule时必须使用Component/@Guid属性
我尝试这样做:<Component Guid="*"> <File Id="$(var.Logger.TargetFileName)" Source="$(var.Logger.TargetPath)" KeyPath="yes" /> </Component>
而且从光得到一个错误,即对组件的密钥文件
路径没有植根于 标准目录(如ProgramFilesFolder)之一
... 我很困惑,因为这条路是扎根于Progr am文件:<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>
通常$(var.PlatformProgramFilesFolder)的计算结果是什么?你的组件有什么目录引用? – bradfordrg
$(var.PlatformProgramFilesFolder)被评估为ProgramFiles64Folder。我的组件引用ConfiguratorDir。 –