当我在 VS2010 中尝试在我的 WiX 安装程序项目中使用合并模块时收到来自 light.exe 的以下警告,我感到非常沮丧:
ICE80: This 64BitComponent F_AdaptersInGac.5AE08CC6_EB8E_4F10_AB7B_CEFD0CB0F832
uses 32BitDirectory GAC.5AE08CC6_EB8E_4F10_AB7B_CEFD0CB0F832
(对合并模块中的每个文件重复)。
合并模块和产品 WiX 文件都是同一个 VS2010 解决方案的一部分。合并模块和产品都包含一个<Package>
指定 Platform="x64" 的元素。合并模块 .wxs 文件中的片段如下所示:
<Package Id="{5AE08CC6-EB8E-4F10-AB7B-CEFD0CB0F832}" InstallerVersion="200" Languages="1033" Manufacturer="Yoyodyne Propulsion Systems" Platform="x64" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFiles64Folder">
<!-- Assemblies that go in the GAC -->
<Directory Id="GAC" SourceName="GAC">
<Component Id="C_AdaptersInGac" Guid="{C1C7D6F8-197D-874E-79B9-EBFEBDDCB65A}" Win64="yes">
<File Id="F_AdaptersInGac" Name="ERPLink.Adapters.SharePoint.dll" KeyPath="yes" Assembly=".net" Source="..\Internal\Adapters\Release\Contoso.Adapters.dll" />
</Component>
</Directory>
</Directory>
</Directory>
由于我什至将组件元素放在ProgramFiles64Folder
目录中,并且我已将平台标记为“x64”,为什么会出现此错误?还有哪些其他地方可以控制 WiX 包文件中目录的 64 位?