У меня есть проект БД U-SQL (USQLdb
), который определяет базу данных U-SQL и ее составные таблицы, процедуры и т. Д. Этот проект также ссылается на две сборки для использования в одной из хранимых процедур.Файлы DLL хранятся в папке с именем assemblies
в папке U-SQL Data Root и на нее ссылаются в базе данных с помощью следующего сценария:
CREATE ASSEMBLY IF NOT EXISTS [Microsoft.Analytics.Samples.Formats]
FROM "/assemblies/Microsoft.Analytics.Samples.Formats.0.0.0.0/Microsoft.Analytics.Samples.Formats.dll";
Это работает при развертывании на Local-machine
или наAzure.
Для целей тестирования я добавил проект приложения U-SQL (USQLScripts
), который ссылается на USQLdb
, со сценариями U-SQL, которые выполняют хранимую процедуру, каждый с целью настройки модуля.Тестирование.
Однако при попытке запустить эти сценарии для Local-project: USQLdb
развертывание базы данных завершается неудачно.Из журналов это происходит потому, что сценарий развертывания USQLdb
не может найти ссылочные сборки в корневой папке данных Local-project
:
*** Error : (204,6) 'Assembly file 'C:\<Solution Folder>\USQLScripts\bin\Debug\DataRoot\assemblies/Microsoft.Analytics.Samples.Formats.0.0.0.0/Microsoft.Analytics.Samples.Formats.dll' could not be read.'
Я указал USQLScripts
Test Data Source
как локальная корневая папка данных U-SQL, которая копирует все найденные файлы в рабочий каталог Local-project
здесь:
C:\<Solution Folder>\USQLScripts\bin\Debug\USQLScripts_altdata_5qktnwfj.gln\data'
, хотя согласно сообщению об ошибке выше, USQLdb
Ссылка на сборку пытается найтиих здесь:
C:\<Solution Folder>\USQLScripts\bin\Debug\DataRoot
Поскольку папка DataRoot
полностью очищается и воссоздается при каждом выполнении Local-project
, как я могу либо получить сборки в папку DataRoot
при выполнении, либо ссылаться на них произвольно безизменение адреса в ранее включенном сценарии U-SQL, который работает как требуется при развертывании в Azure?
Получается, что если я удалю ссылку на базу данных U-SQL в USQLScripts
, файлынаходящиеся в папке Test Data Source
теперь копируются в папку C:\<Solution Folder>\USQLScripts\bin\Debug\DataRoot
, но сценарии не могут быть выполнены, поскольку база данных, к которой они пытаются выполнить, не была указана.У меня создается впечатление, что я либо что-то упустил, либо столкнулся с ошибкой / непреднамеренным поведением ...