2017-10-16 5 views
2

J'ai cette question folle où une opération de SMO échoue, et la seule différence est ce fichier étrange dans mon dossier bin:Impossible de charger le fichier ou l'assembly « Microsoft.SqlServer.BatchParserClien.dll Nom de fichier

Impossible de charger le fichier ou l'assemblage « Microsoft.SqlServer.BatchParserClien.dll

NOTE: ce n'est pas une faute de frappe, qui est le nom réel du fichier dans le système de fichiers.

Je ne sais pas quoi faire de cela, je n'ai jamais vu quelque chose comme ça dans mon dossier bin avant.

L'opération que je fais est:

var distributor = new ReplicationServer(conn); 
        if (!distributor.DistributorInstalled) 
        { 
         distributor.InstallDistributor((string)null, distributionDb); 
        } 

J'utilise le Microsoft.SqlServer.SqlManagementObjects de package NuGet avec la version 140.17177.0.

Le journal de fusion dans l'exception est:

=== informations d'état pré-bind === LOG: DisplayName = Microsoft.SqlServer.BatchParser, Version = 14.100.0.0, Culture = neutre, PublicKeyToken = 89845dcd8080cc91 (entièrement spécifié) LOG: appbase = file: /// C:/TFS/Retour Bureau/Persistance/ReplicationManagement/travailleur/bin/Debug/LOG: initial privatePath = NULL appel assembly: Microsoft. SqlServer.BatchParserClient, Version = 14.100.0.0, Culture = neutre, PublicKeyToken = 89845dcd8080cc91. === LOG: Cette liaison démarre dans le contexte de chargement par défaut. LOG: Utilisation du fichier de configuration de l'application: C: \ tfs \ Back Office \ Persistence \ Gestion_réplication \ Worker \ bin \ Debug \ Worker.exe.Config LOG: Utilisation du fichier de configuration de l'hôte: LOG: Utilisation de la configuration de la machine fichier de \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ config \ machine.config. LOG: Référence de post-stratégie: Microsoft.SqlServer.BatchParser, Version = 14.100.0.0, Culture = neutre, PublicKeyToken = 89845dcd8080cc91 LOG: Tentative de téléchargement du nouveau fichier URL: /// C:/tfs/Retour Office/Persistance/ReplicationManagement/Travailleur/bin/Debug/Microsoft.SqlServer.BatchParser.DLL. ERR: Impossible de terminer l'installation de l'assembly (hr = 0x8007000b). Sondage terminé.

Le fichier BatchParser existe dans la corbeille avec la même version spécifiée. J'ai un projet où cela fonctionne, et la seule différence est le nom du fichier dans la sortie.

+0

Même problème sur MS Connect: https://connect.microsoft.com/SQLServer/feedback/details/3140836/smo-nuget-packages-do-not-work- fiable-en raison d'un-gac-dépendance-sur-sqlserver-batchparser-dll – Rajesh

Répondre

1

J'ai eu un problème similaire. J'ai une application SMO qui utilise le paquet nuget Microsoft.SqlServer.SqlManagementObjects.

L'application fonctionne parfaitement sur mon PC mais quand il s'agit de le déployer et l'exécuter sur notre serveur d'application, je recevais l'erreur.

Impossible de charger le fichier ou l'assembly 'Microsoft.SqlServer.BatchParser.dll' ou l'une de ses dépendances. Le module spécifié est introuvable.

Pour résoudre le problème, j'ai dû recréer le projet en ciblant à nouveau la plate-forme x86. J'ai ensuite également dû installer le x86 correspondant C++ Redistributable Package