2016-06-14 22 views
0

Ich versuche, eine CoordinateTransformation zu erstellen, um das SRS eines Shapefiles zu transformieren. Doch beim Versuch, eine mit dem folgenden Methodenaufruf zu erstellen:Der Typinitialisierer für 'OSGeo.OSR.OsrPINVOKE' hat eine Ausnahme ausgelöst

var sourceSrs = new SpatialReference(Osr.SRS_WKT_WGS84); 

Ich bekomme die Ausnahme:

Die Typeninitialisierer für ‚OSGeo.OSR.OsrPINVOKE‘ hat eine Ausnahme.

Die detaillierte Ausnahme wie folgt aussieht:

Exception

Kann jemand helfen?

+0

Ich habe diese Frage bereits auf [GIS SE] gestellt (http://gis.stackexchange.com/q/198362/30966). – displayName

+0

Dieses "schlechte Bildformat" weist wahrscheinlich auf einen Unterschied in der Architektur hin - etwas, das für x86 gebaut wurde, um zum Beispiel mit etwas zu interagieren, das für x64 gebaut wurde. Vieles davon ist wahrscheinlich hinter den P/Invoke-Aufrufen verborgen, die für die von Ihnen verwendete Bibliothek intern sind. –

+0

@ Cᴏʀʏ: Sie sind absolut richtig. Also habe ich diesen Code von einem Komponententest ausgeführt. Ich habe die 'Default Process Architecture' unter Test Settings auf x64 gesetzt. Ich bekomme diese Ausnahme immer noch. Irgendeine andere Einstellung, die ich ändern muss (was denkst du)? – displayName

Antwort

0

Forcing das Projekt für Zielplattform von x64 zu bauen hilft. Sie können das tun, indem Sie zu Projekteigenschaften gehen (Tastenkombination: Alt + Geben Sie ein)> Erstellen> Plattformziel.

Wenn Sie den Code aus einem Komponententest ausführen, führen Sie das gleiche für das Unit Testing-Projekt und aus, ändern Sie die "Standardprozessarchitektur" auf x64. Die "Default Process Architecture" kann über Test (in VS-Menüoptionen)> Test Settings> Default Processor Architecture> x64 geändert werden.