Исключенная программа установки. Повторные обнаруженные зависимости проекта включаются снова. - PullRequest
1 голос
/ 17 ноября 2011

Мы сталкиваемся со следующей проблемой при использовании Visual Studio 2008, в которой даже при сохранении проекта установки после установки значения параметра «Исключить дублированные обнаруженные зависимости» в значение «истина» после перезагрузки проекта параметры «Исключить» снова изменяются на значение «ложь».

И из-за этого вам необходимо снова исключить обнаруженные зависимости, чтобы получить желаемый результат. У нас есть огромное решение взаимозависимых 120+ проектов с огромным количеством зависимостей dll, поэтому возвращать значения обратно очень сложно.

Я просто упростил приведенный ниже сценарий (занижение), чтобы проиллюстрировать:

ПРОЕКТЫ:

  • PROJECTA - ссылки на DLL1, DLL2, DLL3
  • PROJECTB - ссылки на DLL3, DLL4, PROJECTA
  • PROJECTC - ссылки на DLL2, DLL3, DLL4
  • PROJECT1 (Настройка проекта)

    • Первичный выход для PROJECTA (добавлен вручную)
    • Первичный выход для PROJECTB (добавлен вручную)
    • (обнаруженные зависимости автоматически добавляются VS)
      • PROJECTA (установите Exclude = True, значение остается неизменным после перезагрузки)
      • DLL1 (установите Exclude = True, значение остается неизменным после перезагрузки)
      • DLL2 (установите Exclude = True, после перезагрузки значение изменится на False)
      • DLL2 (установите Exclude = True, после перезагрузки значение изменится на False)
      • DLL3 (без изменений, хотите включить)
      • DLL3 (установите Exclude = True, после перезагрузки значение изменится на False)
      • DLL3 (установите Exclude = True, после перезагрузки значение изменится на False)
      • DLL4 (установите Exclude = True, после перезагрузки значение изменится на False)
      • DLL4 (установите Exclude = True, после перезагрузки значение изменится на False)

ВЫХОД (для PROJECT1.msi):

  • Желаемый выход:

    • PROJECTA.dll
    • PROJECTB.dll
    • DLL3
  • Вывод, когда VS изменяет параметры исключения на False:

    • PROJECTA.dll
    • PROJECTB.dll
    • DLL2
    • DLL3
    • DLL4

Это вызовет проблемы во время выполнения (плюс раздутый установщик).

Я просматривал Интернет и пока не нашел работоспособного решения для нашей установки. И некоторые вопросы задавались в прошлом, поэтому мне интересно, есть ли уже патч для этого, или у кого-нибудь есть новый обходной путь, который поможет нам.

Помимо использования WIX и установки значения параметра Локальное копирование всех зависимостей в значение false, есть ли у кого-нибудь решение, позволяющее Visual Studio сохранить значение параметра Исключить?

...