4 votes

La version 10 ou supérieure de Microsoft.SqlServer.Types n'a pas pu être trouvée.

Cette question a été posée à de nombreuses reprises, mais après avoir suivi les conseils de la rubrique cette réponse Je ne suis toujours pas à la hauteur.

J'ai une bibliothèque de classes qui est invoquée par une autre application. Cela fonctionne localement sans problème. J'utilise ce qui suit...

SqlServerSpatial140 y msvcr120 sont tous deux dans la corbeille, dans leurs dossiers respectifs.

Avant que les appels spatiaux ne soient invoqués

SqlServerTypes.Utilities.LoadNativeAssemblies(dlls); // dlls == bin directory 
SqlProviderServices.SqlServerTypesAssemblyName = typeof(SqlGeography).Assembly.FullName;

App.config

<runtime>
  <dependentAssembly>
     <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
     <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
   </dependentAssembly>
</runtime>

Cependant, lorsqu'il est déployé sur un serveur, j'obtiens un message System.InvalidOperationException lors de l'appel System.Data.Entity.Spatial.DbGeography.FromText(String wellKnownText)

avec l'erreur

Les types et fonctions spatiales ne sont pas disponibles pour ce fournisseur car l'assembly 'Microsoft.SqlServer.Types' version 10 ou supérieure n'a pas pu être trouvé. System.InvalidOperationException : Les types et fonctions spatiales ne sont pas disponibles pour ce fournisseur car l'assembly 'Microsoft.SqlServer.Types' version 10 ou supérieure n'a pas pu être trouvé.

Qu'est-ce qui m'échappe ?

0voto

Ogglas Points 1

Avez-vous placé le bindingRedirect dans les applications exécutables App.config ? Les bibliothèques de classes et autres DLL doivent éviter d'utiliser App.config des paramètres.

Plus d'informations ici :

https://stackoverflow.com/a/1009227/3850405

Le présent bindingRedirect a fonctionné pour moi :

<dependentAssembly>
  <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
  <bindingRedirect oldVersion="10.0.0.0-11.0.0.0" newVersion="14.0.0.0" />
</dependentAssembly>

https://stackoverflow.com/a/44819952/3850405

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X