Ссылочная сборка в 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