Несколько решений с использованием общих DLL могут вызвать хаос при втянутых решениях
-
16-10-2019 - |
Вопрос
Проблема: Многочисленные решения с использованием общего DLL могут вызвать хаос, когда отдельные решения втянуты.
Пример: У вас есть Helper DLL Web Part DLL, используемый всем вашим кодом веб -части. Если вы отодвигаете решение, содержащее ссылку на этот DLL, то запись SafeControl удаляется из соответствующего веб -приложения, и все ваши веб -части начинают сбой. Или даже лучше, DLL полностью удален из GAC.
Решение: Я не знаю? Кому ты рассказываешь.
Решение
Когда у вас есть общие/общие компоненты, такие как Helper DLL, о котором вы говорите, которые используются в нескольких решениях в организации. Моя рекомендация состоит в том, чтобы собрать их в качестве «фреймворчатого решения», которое развернуто на серверах, в конечном итоге из «решений на основе функций».
Таким образом, вы «функции решения» разработаны в знании, что «структура» всегда доступна.
SharePoint всегда убирает/удаляет то, что вы добавили в пакете решений, несмотря на то, что у него нет ничего встроенного для обнаружения общих компонентов.
Другие советы
Метод, который я использую объединить все сборки в один, используя Ilmerge как часть сборки, перед упаковкой
Это делает его пуленепробиваемым, так как тогда кто -то невозможно каким -то образом удалить зависимые сборки.
Да, это общая проблема в развертывании SharePoint. Мое решение состоит в том, чтобы изменить номер версии для Helper DLL-S. Так что даже у вас есть несколько вспомогательных DLL-S в GAC, что не должно быть большой проблемой. Кончик:SolutionInfo
Мы назначаем каждую общую сборку в один файл WSP. Затем мы используем зависимости от функций, чтобы описать, использует ли кто -либо из них общий компонент, и имеем правило, которое общие зависимости не могут быть удалены, если от него зависят какие -либо активные функции.
Трудность заключается в том, чтобы убедить всех следовать правилам.
Команды, как правило, копируют и вставляют сборки в свои собственные файлы WSP или удаляют любые файлы WSP, которые они используют, не обращая внимания на правила.