Ссылочная сборка в sqlproj не развертывается на сервере


9

У меня есть Visual Studio 2013 базы данных проекта , который принимает модифицированную версию о fastJSON в качестве ссылки. Я выбрал «Создать DDL» в ссылочных свойствах, как показано на этом скриншоте:

панель свойств fastJSON

И в файле .sqlproj msbuild:

<Reference Include="fastJSON">
  <HintPath>..\..\fastjson\output\net40\fastJSON.dll</HintPath>
  <GenerateSqlClrDdl>True</GenerateSqlClrDdl>
</Reference>

Однако bin / debug / Project.sql не содержит строки для CREATE ASSEMBLY fastJSON . . .. Добавление сборки вручную работает, и мой проект будет развернут и запущен. Что мне сделать, чтобы Visual Studio развернул мою сборку?


5
Хммм ... наш установлен в False, и Model Awareустановлен в True, и мы получаем CREATE ASSEMBLYв выводе. Может быть, попробовать эти настройки и посмотреть, что происходит?
Джон Зигель

Ответы:


10

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

Model AwareСвойство должно быть установлено значение True.

Это свойство плохо документировано, но, насколько я понимаю, оно позволяет выставлять объекты в сборке модели базы данных, чтобы их можно было использовать в оболочках SQLCLR (т. Е. CREATE ... EXTERNAL ...), А ссылки можно разрешить. Если проект не включает эти объекты в модель, они не будут включены в выходные данные. Кроме того, если в сборке есть ссылка на объект, и для этого свойства установлено значение False, проект не удастся построить.

Generate Sql ScriptСобственности я уже находится в таком же состоянии документации. Это контролирует, будут ли публично видимые элементы в сборке автоматически внесены в вывод. Мы отключили его, чтобы сохранить гибкость переименования оболочек SQLCLR и выборочного включения только тех объектов, которые нам нужны. Какой путь вы установите, это на ваше усмотрение.

Надеемся, что это поможет публичной документации этих свойств!


Спасибо за это, Джон! Исправлена ​​ошибка «невозможно разрешить токен».
Ролан

Где именно «Model Aware» установлен на «истина»?
nh43de

Model Awareи другие свойства можно установить, щелкнув правой кнопкой мыши на указанной DLL и выбрав Properties.
d12
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.