Question

J'ai une petite application qui utilise la même API que les exemples PowerScript pour la mise à niveau d'une base de données à partir d'un dacpac (application de données de niveau).

Pour le faire fonctionner sur un serveur Windows 2008 sans outils SQL Server installé je devais refernce beaucoup de dll et choisissez « Copier local » sur les dll pour les obtenir dans mon dossier de compilation. Cela fonctionne très bien.

Je veux maintenant appeler la même API d'un rôle de travailleur sur Azure. Mais quand je le lance (avec les mêmes dll) Je reçois

"System.IO.FileLoadException: Impossible de charger le fichier ou l'assemblage « Microsoft.SqlServer.BatchParser.dll » ou une de ses dépendances. le application n'a pas pu démarrer car sa côte à côté configuration est incorrect. S'il vous plaît voir le journal des événements application "

Il fonctionne très bien quand je déploie à l'émulateur local.

Je n'ai pas encore été en mesure d'obtenir quelque chose de significatif à partir des journaux (pas sûr si j'ai mes diagnostics à droite).

Le fichier mentionné est dans le package publié. J'ai trouvé 2 versions de Teh fichier, mais l'autre version est de 32 bits et I (naturellement) obtenir une exception BadFormat si je l'essayer.

Voici les dll que je fais référence:

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

Toutes les idées WHT je manque?

Était-ce utile?

La solution

Je pense que j'ai craqué cela. Je permis l'accès à distance à la machine virtuelle qui signifie que j'ai eu accès aux événements d'application. Après avoir exécuté mon rôle de travailleur, je suis une erreur dans l'observateur d'événements en disant qu'il n'a pas pu trouver Microsoft.VC80.CRT.

Je n'ai pas trouvé une dll par ce nom, mais je l'ai trouvé

microsoft.vc80.crt.manifest 

dans ce dossier:

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

Il pointe vers 3 autres dll que j'ai également inclus:

msvcr80.dll
msvcp80.dll
msvcm80.dll

J'ai couru que la mise à niveau une fois jusqu'à présent, mais nous espérons que cela se fait maintenant. Si je trouve / corriger plus de problèmes que je mettrai à jour ici.

Espérons que cela aide quelqu'un.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top