2016-10-21 5 views
3

Selon SqlServerTypes README je dois mettre cette ligne:SqlServerTypes.Utilities est inaccessible en raison de son niveau de protection

SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);

avant de faire des opérations spatiales pour une application de bureau (le mien est une application console).

Cependant, il génère une erreur sur la construction:

'Utilities' is inaccessible due to its protection level

Je suis entré dans le dossier packages et trouvé Loader.cs et la classe Utilities est en fait interne? Comment cela aurait-il déjà fonctionné? Je ne pouvais pas trouver quelqu'un d'autre avec ce problème et ils l'utilisent sans problème.

Utilities

Si je F12 dans le décompilé Utilities il est également marqué comme interne.

SqlServerTypes

J'utilise la version 11.0.2.

+0

J'ai exactement la même chose. J'ai utilisé le paquet nuget 'https: // www.nuget.org/packages/Microsoft.SqlServer.Types /' et j'ai la même chose. Avez-vous déjà trouvé une solution? Changer l'interne au public ne l'a pas arrangé pour moi. Semble continuer à planter sur 'Application_Start'. –

+1

@JPHellemons Eh bien j'ai fait un hack autour de ça. Le problème avec le paquet existe toujours. Étant donné que les fichiers DLL sont toujours copiés dans le répertoire bin de sortie, mais pas dans le directeur racine, j'ai ajouté un script de post-déploiement pour copier le script DLL du sous-répertoire vers le répertoire bin racine. Comme il n'y a aucun moyen de différencier les besoins 32 et 64 bits, vous ne pouvez copier que l'un ou l'autre, ce qui peut ne pas fonctionner pour vous. Je sais que je vais toujours utiliser la version 64 bits. –

+0

Je vois des choses comme celles-ci comme une preuve positive que personne chez Microsoft ne mange le dog-food quand il s'agit de SqlClr ou de l'un des outils périphériques de Sql Server. – Pxtl

Répondre

0

L'installation du package nuget sur le site MVC ainsi que sur la couche de domaine a résolu ce problème pour moi. Pour commencer, j'ai seulement installé le paquet dans la couche de domaine, où je l'utilise réellement.