Использование API пакета DAC (приложения уровня данных) в Azure
-
27-10-2019 - |
Вопрос
У меня есть небольшое приложение, использующее тот же API, что и в примерах Powerscript, для обновления базы данных с dacpac (приложения уровня данных).
Чтобы заставить его работать на сервере Windows 2008 без установленных инструментов SQL Server, мне пришлось сослаться на множество dll и выбрать «Копировать локально» для этих dll, чтобы поместить их в мою папку компиляции. Это нормально работает.
Теперь я хочу вызвать тот же API из рабочей роли в Azure. Но когда я запускаю его (с такими же dll), я получаю
<цитата>«System.IO.FileLoadException: не удалось загрузить файл или сборку. 'Microsoft.SqlServer.BatchParser.dll' или одна из его зависимостей. В приложение не удалось запустить из-за его параллельной конфигурации это неверно. См. Журнал событий приложения »
Он отлично работает при развертывании в локальном эмуляторе.
Мне пока не удалось получить ничего значимого из журналов (не уверен, правильно ли я проверил диагностику).
Упомянутый файл находится в опубликованном пакете. Я нашел 2 версии файла, но другая версия - 32-битная, и я (понятно) получаю исключение BadFormat, если попробую.
Вот библиотеки, на которые я ссылаюсь:
родовое словоЕсть идеи, которых мне не хватает?
Решение
Кажется, я уже нашел это.Я включил удаленный доступ к виртуальной машине, что означало, что у меня был доступ к событиям приложения.После запуска моей рабочей роли я получил ошибку в средстве просмотра событий, говоря, что он не может найти microsoft.vc80.crt.
Я не нашел DLL с таким названием, но нашел
родовое словов этой папке:
родовое словоОн указывает на 3 другие библиотеки, которые я также включил:
родовое словоПока что я запускал обновление только один раз, но, надеюсь, это сделано сейчас.Если я найду / исправлю еще какие-то проблемы, я обновлю здесь.
Надеюсь, это кому-то поможет.