Есть ли побочные эффекты при использовании макроса _BIND_TO_CURRENT_VCLIBS_VERSION?

Мы переносим проект VC ++ из Visual Studio 2003 в Visual Studio 2008 SP1 (9.0.30729.4148). Зависимые внешние библиотеки также скомпилирован с Visual Studio 2008 SP1.

MainApp - Main application Compiled with VS SP1 9.0.30729.4148
ExtStaticLib1 - External static library compiled with VS  SP1 9.0.30729.4148
ExtDynamicDll1 - External DLL compiled with VS  SP1 9.0.30729.4148

Существует два сценария развертывания для главного приложения:

  • Машина с правами администратора пользователя: Мы рекомендуем поставить предварительные условия для установки распространяемого пакета Visual Studio перед использованием приложения MainApp. Это работает хорошо, поскольку у пользователя есть права администратора, и установка распространяемого пакета не вызывает проблем. Приложение автоматически связывается с DLL перераспределения VC в папках WinSxS.
  • Машина с пользователем без прав администратора: Этот сценарий проблематичен. У пользователя нет прав администратора. Следовательно, невозможно установить повторно распространяемый пакет VS2008SP1.

Чтобы решить эту проблему, мы делаем следующее:

  • Скомпилируем цели MainApp с помощью макроса _BIND_TO_CURRENT_OPENMP_VERSION (для всех проектов в MainApp).

  • Распространяем распространяемые библиотеки DLL VS2008SP1 как частные сборки и копируем их в каталог установки приложения.

Вопросы:

  1. Есть ли побочный эффект использования флага _BIND_TO_CURRENT_VCLIBS_VERSION (особенно, когда и распространяемый пакет VC, и частные сборки распространяемого VC существуют вместе)?
  2. У нас нет большого контроля над внешними библиотеками ExtStaticLib1, ExtDynamicDll1 и следовательно, они не будут компилироваться с макросом _BIND_TO_CURRENT_OPENMP_VERSION. Но они уже скомпилированы с VSSp1. Будет ли проблема с этой настройкой?
  3. Возникнет ли проблема, если будет доступна более новая версия распространяемого пакета VS (новее 9.0.30729.4248).

Спасибо.

13
задан aJ. 25 July 2011 в 03:11
поделиться