Использовать API пакета DAC (приложения уровня данных) в Azure - PullRequest
0 голосов
/ 20 октября 2011

У меня есть небольшое приложение, которое использует тот же API, что и примеры powerscript, для обновления базы данных из dacpac (приложение уровня данных).

Чтобы заставить его работать на сервере Windows 2008 без каких-либо установленных инструментов SQL Server, мне пришлось обратиться ко многим библиотекам и выбрать «Копировать локальный» в этих библиотеках, чтобы поместить их в папку компиляции. Это отлично работает.

Теперь я хочу вызвать тот же API из рабочей роли в Azure. Но когда я запускаю его (с теми же DLL), я получаю

"System.IO.FileLoadException: не удалось загрузить файл или сборку 'Microsoft.SqlServer.BatchParser.dll' или одна из его зависимостей. приложение не удалось запустить, так как его параллельная конфигурация это неверно. Пожалуйста, смотрите журнал событий приложения "

Работает нормально при развертывании в локальном эмуляторе.

Я еще не смог получить что-либо значимое из журналов (не уверен, что у меня правильная диагностика).

Упомянутый файл находится в опубликованном пакете. Я нашел 2 версии файла, но другая версия - 32-разрядная, и я (по понятным причинам) получаю исключение BadFormat, если я попробую его.

Вот библиотеки, на которые я ссылаюсь:

ADODB, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
Microsoft.Build.Utilities.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL
Microsoft.CSharp
Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL
Microsoft.ReportViewer.ProcessingObjectModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL
Microsoft.SqlServer.BatchParser
Microsoft.SqlServer.BatchParserClient
Microsoft.SqlServer.ConnectionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Diagnostics.STrace, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Dmf, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Management.Dac, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Management.DacEnum, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Management.DacSerialization, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Management.SmoMetadataProvider, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Management.SqlParser, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.ServiceBrokerEnum, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.Smo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.SqlClrProvider, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.SqlServer.SqlEnum, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Microsoft.WindowsAzure.ServiceRuntime
Microsoft.WindowsAzure.StorageClient, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
System
System.Configuration
System.Core
System.Data
System.Data.DataSetExtensions
System.Data.Entity.Design
System.Deployment
System.Drawing
System.Windows.Forms
System.Xml
System.Xml.Linq
WindowsBase

Есть идеи, по которым я скучаю?

1 Ответ

0 голосов
/ 21 октября 2011

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

Я не нашел dll с таким именем, но обнаружил

microsoft.vc80.crt.manifest 

в этой папке:

C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Update Cache\KB2528583\ServicePack\x64

Это указывает на 3 других библиотеки, которые я также включил:

msvcr80.dll
msvcp80.dll
msvcm80.dll

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

Надеюсь, это кому-нибудь поможет.

...