之前寫過一篇關於再C#中呼叫GDAL庫出現OSGeo.GDAL.GdalPINVOKE”的型別初始值設定項引發異常的解決方案,部落格地址見下:
http://blog.csdn.net/liminlu0314/article/details/7506101

但是解決完該問題之後,還會出現下面的問題:
“安全透明方法“OSGeo.GDAL.Gdal.AllRegister()”嘗試通過方法“OSGeo.GDAL.GdalPINVOKE.AllRegister()”呼叫本機程式碼失敗。方法必須是安全關鍵的或安全可靠關鍵的”

要解決這個問題,需要在編譯GDAL的C#版本時,修改csharp目錄中的AssemblyInfo.cs檔案。具體修改如下:

// The AllowPartiallyTrustedCallersAttribute requires the assembly to be signed with a strong name key.
// This attribute is necessary since the control is called by either an intranet or Internet
// Web page that should be running under restricted permissions.
//[assembly: AllowPartiallyTrustedCallers] 註釋掉這一行

修改完成之後,重新生成C#的庫,即可。