ilostmyid2 Ответов: 0

990423 - как отличить 32-битные и 64-битные установщики?


Привет Мы знаем, что 32-битные exe-файлы не могут запускать 64-битные dll-файлы (вызывать их функции) и наоборот. Мы знаем, что 32-разрядный пакет (установщик MSI Windows) может быть установлен на 32-разрядной Windows и 64-разрядной Windows, в то время как 64-разрядный пакет MSI может быть установлен только на 64-разрядной платформе.
Теперь у меня есть проект VDPROJ для создания 32-битных и 64-битных установщиков Windows. Кроме того, мы знаем, что MSI не может упаковать как 32-битные, так и 64-битные установщики одновременно. У вас может быть 32-разрядный MSI или 64-разрядный MSI, каждый из которых может установить 32-разрядную программу, использующую 32-разрядные DLL, или 64-разрядную программу, использующую 64-разрядные DLL.
Неужели я ригт до сих пор?
Теперь я различаю эти сборки MSI по combobox в разделе Configuration Manager. Есть две конфигурации, одна-x86, а другая-x64.
Моей программе нужны библиотеки DLL ffmpeg, которые выпускаются как 32-разрядные, так и 64-разрядные. В vdproj я указал, что они должны быть установлены, но каждый раз, когда мне нужно построить 64-разрядный MSI, я должен заменить их, прежде чем создавать пакет.
Теперь я вижу, что в списке свойств установки файла есть свойство "условие", которое может устанавливать или не устанавливать файл на основе условия. Я знаю, что могу указать VersionNT64 или не VersionNT64 в качестве условия, но это не может помочь, потому что я не имею в виду платформу, на которой установлен пакет. Напоминаем, что на 64-битной платформе могут быть установлены как 32-битные, так и 64-битные пакеты. Но мне нужно знать, что выбрано из combobox, x86 или x64, и на основе этого я решаю, какую библиотеку dll установить.
Есть ли способ обратиться к выбранному менеджеру конфигурации в свойстве condition списка свойств установки файла?

Что я уже пробовал:

Я искал предопределенные переменные, которые я могу использовать в свойстве Condition, а также его формат. Но я ничего не нашел.

0 Ответов