Как:Копировать зависимую сборку, если ее нет в GAC?
-
23-08-2019 - |
Вопрос
Я создаю установочный пакет, используя VS2008.Это обычный пакет установки, устанавливающий приложение надстройки COM для Outlook.Работает, ок, пока.Однако мне нужно его немного улучшить...
История такова, что установочный пакет копирует все зависимые сборки в папку установки надстройки.
Например, надстройка COM зависит от сборки Microsoft.Office.Interop.Outlook.dll.Поэтому установочный пакет копирует его в свою папку :)
Конечно, я могу переключить свойство Exclude зависимости Microsoft.Office.Interop.Outlook.dll на True, что предотвратит копирование сборки.Однако мне нужно добиться следующего поведения:
- В случае, если Microsoft.Office.Interop.Outlook.dll нет в GAC, просто копируем его в папку установки Надстройки.
- В противном случае используйте тот, который есть в GAC.
Подскажите, пожалуйста, как это можно сделать в .Net2.0?Пошаговое руководство будет очень оценено.
Решение
Просто всегда копируйте его в папку.Если он уже находится в GAC, сборка, созданная GAC, в любом случае будет использоваться в первую очередь.
Другими словами, среда выполнения сначала проверяет GAC.Затем проверяет базу приложений и т.д.
http://msdn.microsoft.com/en-us/library/yx7xezcf(VS.71).aspx