我有一个安装程序,其中包含一个 32 位和 64 位版本的第三方库。该库附带具有相同文件名的 32 位和 64 位文件夹。我所做的是将文件重命名为具有不同的 32/64 名称,以便两者都可以包含在安装程序中。我试图在FILE
标签中设置有条件地包含该文件,但也将其重命名为其基本名称 efxzlib.dll。
这可能与文件吗?中的Name
属性File
似乎在构建时重命名文件,而不是安装时。我试图避免使用单独的 32 位和 64 位安装程序,因为这个 DLL 是唯一唯一的 32/64 组件。这是否最好通过托管自定义操作来完成?
<Component Id="CMP_EFX_ZLIB_32BIt" Guid="MY_GUID1">
<Condition>
<![CDATA[NOT(VersionNT64)]]>
</Condition>
<File Id="FILE_EFX_ZLIB_32BIt" KeyPath="yes" Source="$(var.EFX5LibraryBase32bit)\efxzlib32.dll" Name="efxzlib.dll" />
</Component>
<Component Id="CMP_EFX_ZLIB_64BIt" Guid="{MY_GUID2}">
<Condition>
<![CDATA[VersionNT64]]>
</Condition>
<File Id="FILE_EFX_ZLIB_64BIt" KeyPath="yes" Source="$(var.EFX5LibraryBase64bit)\efxzlib64.dll" Name="efxzlib.dll" />
</Component>