Предварительные требования VC ++ в соответствии с целевой платформой в едином установщике

У меня есть приложение .NET 4.0, для которого требуется установленный распространяемый пакет VC ++ 2010. При создании проекта установки с использованием проекта установщика Visual Studio я выбрал Visual c++ 2010 Runtime Libraries (x64) и Visual c++ 2010 Runtime Libraries (x86) для поддержки как на 32-битных, так и на 64-битных платформах.

При тестировании установщика на 32-битной машине выдает ошибку

Проверка предварительных требований для системного компонента Библиотеки времени выполнения Visual C ++ 2010 (x64) завершилась неудачно, появилось следующее сообщение об ошибке: «Установка библиотек времени выполнения Visual C ++ 2010 (x64) поддерживается только на компьютерах x64».

Как сделать предварительные условия для библиотек времени выполнения Visual c ++ 2010 условными в соответствии с целевой платформой.


person Amogh    schedule 20.08.2014    source источник


Ответы (1)


Вы не можете, если пакет VC redist не позволит вам. Причина в том, что разные архитектуры требуют отдельных настроек MSI:

http://blogs.msdn.com/b/heaths/archive/2008/01/15/different-packages-are-required-for-different-processor-architectures.aspx

Итак, если вы действительно создаете приложение и настройку, которые предназначены как для 32-разрядной, так и для 64-разрядной версии, то вы создаете две настройки: x86 с повторным списком x86 VC для 32-разрядных и x64 с повторным списком для 64-разрядных. Вы можете добавить условие, запрещающее установку x86 на x64, направляя клиентов к установке x64.

person PhilDW    schedule 20.08.2014
comment
Или я могу сделать одну настройку с целевой платформой x86 с повторным списком x86 VC в качестве предварительного условия. В настоящее время цель платформы для всех моих проектов установлена ​​только на x86. Итак, если установка выполняется на 64-битной машине, тогда устанавливается x86 VC redist. Это нормально? - person Amogh; 21.08.2014
comment
Если вы сделаете весь свой код x86, тогда да, все, что вам нужно, это установка x86 с x86 redist. Все это просто работает. - person PhilDW; 21.08.2014
comment
Да!! Я выполнил настройку с помощью Процедуры развертывания Visual C ++ библиотеки DLL как общие сборки Все работает отлично. :) - person Amogh; 22.08.2014