Как сослаться на проект CLR, отличный от SQL, из моего проекта SQL CLR?

У меня есть решение с двумя проектами. Первый — это проект базовой библиотеки классов, содержащий определение классов, совместно используемых несколькими конечными точками службы (DataContract.dll). Второй — это проект SQL CLR, в котором будут использоваться классы, определенные в общей сборке. На моей локальной машине я могу зарегистрировать эту сборку в локальном экземпляре SQL Server, добавить ссылку на сборку и скомпилировать. Однако, когда я фиксирую этот код на нашей сборочной машине, сборка не регистрируется на сервере. Я мог бы вручную зарегистрировать сборку на сервере сборки, но это не поможет новым разработчикам, которые присоединяются к проекту и имеют неработающую сборку при первой проверке. Кроме того, наш сервер сборки выбирает случайное имя для временного каталога, в котором он создается, поэтому ссылка на экземпляр базы данных сервера сборки может быть устаревшей или отсутствовать. Есть ли способ сослаться на проект общей библиотеки из моего проекта SQL CLR, чтобы сервер сборки и новые разработчики всегда имели хорошую сборку?


person JadeMason    schedule 08.08.2012    source источник
comment
Возможно, моя установка отличается от вашей, но в моем проекте SQLCLR единственные ссылки, которые я могу добавить, исходят из базы данных, предназначенной для развертывания. Мне кажется, сервер сборки должен быть настроен таким же образом. Если это невозможно, кажется, что единственным вариантом является регистрация сборки класса в GAC машины сборки.   -  person David W    schedule 08.08.2012
comment
Да, это ограничение, которое я пытаюсь обойти (общая сборка должна быть зарегистрирована в базе данных, доступной как для моей машины разработки, так и для машины сборки, или сборка должна находиться в GAC машины, выполняющей компиляцию). Машина сборки очищает предыдущую сборку (и, таким образом, делает недействительной текущую регистрацию GAC/DB), а затем перестраивает в новом месте. Это приводит к отсутствию ссылки.   -  person JadeMason    schedule 08.08.2012


Ответы (1)