Развертывание задания Sharepoint Time без добавления ссылок делает GAC - PullRequest
1 голос
/ 17 декабря 2010

У нас есть задание таймера SharePoint, которое развертывается с помощью файла WSP.Задание устанавливается с помощью функции SharePoint, а ее DLL помещается в GAC.Любая другая настройка SharePoint развертывается с помощью другого файла WSP, который помещается в папку bin сайта SharePoint, а не в GAC.

Задание таймера SharePoint выполняется службой Windows SharePoint Services Timer (OWSTIMER.EXE) и hasnЭто не какой-либо контекст http или SharePoint.

Если у задания есть какая-либо внешняя ссылка, мы должны также поместить все ссылочные dll в GAC.Однако мы не можем этого сделать, потому что серверная политика не позволяет GAC развертывать чего-либо еще, кроме задания dll ...

Затем наша команда вручную копирует ивставьте код , на который будет ссылаться, и поместите его в проект задания и создайте гигантскую уникальную dll.Такой процесс дублирования вызывал всевозможные проблемы, потому что иногда код был десинхронизирован внутри работы.Тем не менее, дублирование никогда не бывает прекрасным делом, и мы знаем, что из-за него мы идем прямо в ад.

Возможно ли развернуть задание, не развернув его ссылки на gac?Или возможно объединить указанные библиотеки внутри уникальной библиотеки DLL?Или, если все остальное терпит неудачу, возможно построить проект так, чтобы ссылочный код был скопирован во время компиляции?

Спасибо за продвинутый уровень.

Ответы [ 2 ]

3 голосов
/ 18 декабря 2010

Настоящая проблема заключается в полном запрете администраторов вашего сервера на развертывание GAC для чего-либо, кроме библиотеки DLL заданий. Ничего подобного политике без учета последствий;)

Полоса помощи этому ILMerge .

ILMerge - это утилита, которую можно использовать объединить несколько сборок .NET в единая сборка. ILMerge берет набор входных сборок и объединяет их в одну целевую сборку.

Это позволит вам объединить вашу сборку работ и все зависимые сборки в одну супер сборку работ для развертывания - гораздо лучше, чем копировать и вставлять код вручную. Кроме того, вы можете сделать это в пошаговом режиме, чтобы все это было встроено в процесс сборки.

0 голосов
/ 17 декабря 2010

Почему нельзя ссылаться на DLL в каталоге bin?Это, безусловно, может быть.

...