it-swarm.com.de

Unfähig zu laden DLL 'SqlServerSpatial140.dll': Das angegebene Modul wurde nicht gefunden

Das alles neu für mich, also bleib bei mir ...

Ich arbeite an einem Visual Studio-Projekt. Es ist ein Webservice, der Daten zurückgibt. 

Ich habe gerade versucht, einen bestimmten Aufruf an den Webserver auf meinem lokalen Computer (IIS) zu tätigen. Ich erhalte folgende Fehlermeldung:

DLL 'SqlServerSpatial140.dll' kann nicht geladen werden: Das angegebene Modul konnte nicht gefunden werden

Bevor jemand es sagt - ja, offensichtlich fehlt mir diese DLL -Datei. Ich habe online gesucht und sehe nicht, wo ich es herunterladen könnte (Ich habe sowohl Microsoft SQL Server-System-CLR-Typen (x64) als auch Nicht-X64 installiert. Ich habe Microsoft System-CLR-Typen für SQL Server 2014 und 2016 installiert.)

Weiß jemand, wie man das beheben kann? Weiß jemand, ob ich diese Datei einfach von irgendwo herunterladen kann?

12
reviloSlater

Kopieren Sie die DLL von C:\Users\<User>\.nuget\packages\Microsoft.SqlServer.Types\14.0.314.76\nativeBinaries\x86 in Ihr Projekt. Klicken Sie mit der rechten Maustaste auf die Datei und klicken Sie auf Eigenschaften. Stellen Sie "In Ausgabeverzeichnis kopieren" auf "Immer kopieren".

7

Wenn Sie das Paket Microsoft.SqlServer.Types nuget installieren, sollte ein neuer Ordner im Stammverzeichnis erstellt werden:

\SqlServerTypes
   |_x64
   |_x86

die sollte die entsprechenden DLLs enthalten. Es ist auch die automatische Einrichtung von Kopieren, wenn neuere .

Stellen Sie dann sicher, dass Ihre App die entsprechende Assembly lädt:

  • Für ASP.NET-Webanwendungen: SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));
  • Für Desktopanwendungen/andere: SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);

Nicht sicher, ob dies mit .NET Core funktioniert.

7
Pure.Krome

Für diejenigen, die eine sehr ähnliche Menge von Fehlern sehen, etwa: 

Die Datei "...\SqlServerTypes\x64\SqlServerSpatial140.dll" konnte nicht kopiert werden weil es nicht gefunden wurde

Wenn Sie Microsoft.SqlServer.Types über NuGet installiert haben und Ihre Anwendung lokal arbeitet, beim Erstellen über Azure DevOps jedoch Fehler auftreten, müssen Sie lediglich die DLLs zur Quellcodeverwaltung hinzufügen. Wie @ Pure.Krome feststellt, gibt es diese DLLs lokal unter:

 enter image description here

Beachten Sie jedoch, dass diese DLLs standardmäßig ignoriert werden (rotes Symbol links). Klicken Sie mit der rechten Maustaste auf die ignorierten DLLs, und wählen Sie Add Ignored File to Source Control… aus, bestätigen Sie die Änderungen und drücken Sie die Änderungen, und stellen Sie einen neuen Build in die Warteschlange! Hinweis: Ihre Projektmappe kann mehrere Projekte enthalten, und jedes hat seinen eigenen SqlServerTypes-Ordner.

5
mattavatar

Ich hatte ein ähnliches Problem und meine Dateien aus dem Unterordner \SqlServerTypes (installiert als @ Pure.Krome beschrieben) wurden durch meine Einstellungen in NuGet.Config vermisst/verworfen. Ich musste das Nuget-Paket deinstallieren und erneut installieren, Microsoft.SqlServer.Types

0
Roar Jørstad

Mein Problem war gitbedingt: Ein neuer Klon der Lösung (auf TFS aufbewahrt) schien gebrochen zu sein, obwohl meine Entwickler keine Probleme hatten. In meinem Fall hat "Zurücksetzen" den Trick:

  • deinstallieren Sie das Nuget Microsoft.SqlServer.Types 14.0.314.76
  • projekt löschen/neu erstellen
  • installieren Sie das Nuget Microsoft.SqlServer.Types 14.0.314.76
  • projekt löschen/neu erstellen

Vielen Dank. Es hat für mich sehr gut funktioniert. Ich habe viel Zeit verloren, aber Sie haben mich gerettet! :)

Ich habe dies zu meinem Global.asax.cs => Hinzugefügt

 `protected void Application_Start()
    {
     SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));`

Und dann in meinem Projektmappen-Explorer => umschalten alle Dateien anzeigen Und Ignorierte Datei zur Quellcodeverwaltung hinzufügen ... wie Pure.Krone sagte.