У меня есть установщик, который включает стороннюю библиотеку с 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>