Поделиться через


Развертывание и зависимости

Обновлен: Ноябрь 2007

Средства развертывания в Visual Studio автоматически определяют зависимости и добавляют их в проект развертывания всякий раз, когда в проект добавляется группа выходных данных проекта, сборка или модуль слияния. Однако существуют некоторые случаи, когда зависимости определить нельзя.

12w3fhd2.alert_note(ru-ru,VS.90).gifСовет.

Вместо того, чтобы добавлять сборки непосредственно в проект развертывания, лучше добавлять группу выходных данных проекта, содержащую сборку. Средства развертывания легче обнаруживают зависимости для группы выходных данных проекта.

Для сборок обнаруживаются все зависимости с другими сборками. Однако если сборка ссылается на неуправляемый компонент (например, на модель COM, библиотеку DLL), никакие зависимости для этого компонента обнаружены не будут. Аналогично, файлы, добавленные в проект развертывания напрямую, могут иметь зависимости, которые не будут обнаружены. В любом случае зависимые файлы обычно требуются для запуска приложения, но их отсутствие не будет препятствовать запуску установщика.

Чтобы предотвратить эту проблему, необходимо сначала определить существующий тип зависимостей и предпринять соответствующее действие.

  • Может существовать ссылка на компонент, который может быть установлен как часть другого продукта — например, элемент управления веб-обозревателя (shdocvw.dll), который устанавливается как часть обозревателя Internet Explorer.

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

  • Может добавляться неуправляемый компонент, который не предоставляет другим приложениям все свои зависимости — например библиотека базовых классов Microsoft (Microsoft Foundation Classes, MFC), которая не включает в качестве зависимостей локализованные вспомогательные файлы.

    В этом случае потребуется определить все возможные зависимости и включить их в проект развертывания. Чтобы получить список зависимостей, необходимо обратиться к документации компонента или связаться с его автором.

    12w3fhd2.alert_note(ru-ru,VS.90).gifПримечание.

    Большинство инструментов проверки зависимостей, таких как Depends.exe, находят только зависимости с ранней привязкой; зависимости с поздней привязкой отображаются только во время выполнения.

  • Может существовать ссылка на сборку, которая зависима от неуправляемого компонента — например System.Data.dll, которая зависима от компонентов доступа к данным Microsoft (Microsoft Data Access Components, MDAC) версии 2.8. Дополнительные сведения см. в разделе Практическое руководство. Добавление условия запуска для компонентов доступа к данным MDAC.

    Для уверенности, что все зависимые файлы будут установлены, можно добавить модуль слияния, содержащий компонент и его зависимости. Чтобы узнать, доступен ли модуль слияния, свяжитесь с автором компонента. Для большинства компонентов Microsoft модули слияния доступны на веб-узле корпорации Майкрософт.

    Если модуль слияния отсутствует, можно добавить условие запуска, которое проверяет наличие компонента во время установки, и в случае отсутствия компонента прекращает установку.

См. также

Задачи

Практическое руководство. Исключение файлов из выходной группы проекта

Практическое руководство. Добавление условия запуска для компонентов доступа к данным MDAC

Другие ресурсы

Управление условиями запуска при развертывании