Невозможно загрузить файл или сборку "gdal_csharp

Topics: SharpMap v0.9 / v1.x
Sep 29, 2010 at 10:34 AM

Первый день работаю с mapSharp  . Установил fwtools 2.4.7.

Библиотеки взял из SharpMap-0.9-Trunk-2009.10.22.Debug.

на команде - SharpMap.Layers.GdalRasterLayer layGdal = new SharpMap.Layers.GdalRasterLayer("aaa", relativePath + "/q37-100k.ecw");

 Получаю сообщение об ошибке

System.IO.FileLoadException was unhandled
Message="Невозможно загрузить файл или сборку \"gdal_csharp, Version=1.0.3462.17845, Culture=neutral, PublicKeyToken=db5a52b08dc5b321\" или один из зависимых от них компонентов. Найденное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)"
Source="SharpMap.Extensions"
FileName="gdal_csharp, Version=1.0.3462.17845, Culture=neutral, PublicKeyToken=db5a52b08dc5b321"
FusionLog="=== Информация о состоянии предварительной привязки ===\r\nЖурнал: User = MCHS\\terentiev\r\nЖурнал: DisplayName = gdal_csharp, Version=1.0.3462.17845, Culture=neutral, PublicKeyToken=db5a52b08dc5b321\n (Fully-specified)\r\nЖурнал: Appbase = file:///D:/VS2005/Projects/testSharpMap/testSharpMap/bin/Debug/\r\nЖурнал: Initial PrivatePath = NULL\r\nВызов сборки: SharpMap.Extensions, Version=0.9.3575.26260, Culture=neutral, PublicKeyToken=null.\r\n===\r\nЖурнал: данная привязка начинается в контексте загрузки default.\r\nЖурнал: используется файл конфигурации приложения: D:\\VS2005\\Projects\\testSharpMap\\testSharpMap\\bin\\Debug\\testSharpMap.vshost.exe.config.\r\nЖурнал: используется файл конфигурации компьютера из C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727\\config\\machine.config.\r\nЖурнал: ссылка после применения политики: gdal_csharp, Version=1.0.3462.17845, Culture=neutral, PublicKeyToken=db5a52b08dc5b321\r\nЖурнал: попытка загрузки нового URL file:///D:/VS2005/Projects/testSharpMap/testSharpMap/bin/Debug/gdal_csharp.DLL.\r\nПредупреждение: при проверке имени сборки обнаружено несовпадение: Revision Number\r\nОшибка: не удалось завершить установку сборки (hr = 0x80131040). Проверка прекращена.\r\n"
StackTrace:
в SharpMap.Layers.GdalRasterLayer..ctor(String strLayerName, String imageFilename)
в testSharpMap.Form1.button1_Click(Object sender, EventArgs e) в D:\VS2005\Projects\testSharpMap\testSharpMap\Form1.cs:строка 44
в System.Windows.Forms.Control.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ButtonBase.WndProc(Message& m)
в System.Windows.Forms.Button.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
в System.Windows.Forms.Application.Run(Form mainForm)
в testSharpMap.Program.Main() в D:\VS2005\Projects\testSharpMap\testSharpMap\Program.cs:строка 17
в System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Threading.ThreadHelper.ThreadStart()

 В чем может быть проблема?

Sep 29, 2010 at 11:14 AM

В файле app.config нужно прописать пути к fwtools.

подробнее тут

Sep 29, 2010 at 12:21 PM

Это я сделал

<appSettings>
<add key="FWToolsBinPath" value="c:\Program Files\FWTools2.4.7\bin"/>
</appSettings>

До того как я это сделал, Было сообщение несколько иное

Инициализатор типа "SharpMap.Layers.GdalRasterLayer" выдал исключение.

 

Sep 29, 2010 at 12:28 PM

Имя файла app.config а не такое как вроде бы должно быть - имя_программы.config.

Имя exe-файла testSharpMap.exe . Когда я попробовал переименовать файл конфигурации в testSharpMap.config получил сообщение, что не может найти файл конфигурации

Sep 29, 2010 at 12:56 PM

Да, имя файла именно такое: "app.config". Файл лежит например в папке "WinFormSamples". Попробуйте сначала запустить примеры, которые находятся в ней.

 

Sep 29, 2010 at 1:17 PM

Для чистоты эксперимента я сделал новый проект - test1 и для него сделал test1.config.

Система при компилляции выдала сообщение , что есть конфликт между сборками и предложила исправить ситуацию, я согласился.

Система создала файл app.config  со следующим содержимым.

<?xml version="1.0"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="ogr_csharp" publicKeyToken="DB5A52B08DC5B321" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.0.3671.21225" newVersion="1.0.3671.21225"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="gdal_csharp" publicKeyToken="DB5A52B08DC5B321" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.0.3671.21225" newVersion="1.0.3671.21225"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

Но при запуске программы на исполнение снова

появилось сообщение об ошибке "Инициализатор типа "SharpMap.Layers.GdalRasterLayer" выдал исключение.".

Заработало когда app.config сделал в виде

<?xml version="1.0"?>

<configuration>
<appSettings>
<add key="FWToolsBinPath" value="c:\Program Files\FWTools2.4.7\bin"/>
</appSettings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="ogr_csharp" publicKeyToken="DB5A52B08DC5B321" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.0.3671.21225" newVersion="1.0.3671.21225"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="gdal_csharp" publicKeyToken="DB5A52B08DC5B321" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.0.3671.21225" newVersion="1.0.3671.21225"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

 

Coordinator
Sep 29, 2010 at 2:37 PM

Hello,

please be sure to compile sharpmap yourself and do not use the precompiled binaries.

If I recall correctly, they use the csharp bindings from FWTools 2.4.2, so that may be the issue here.

Hth FObermaier

Sep 30, 2010 at 5:22 AM

Can't you help me what I must to do? I am beginner. Thanks!

Coordinator
Sep 30, 2010 at 7:21 AM

You have two choices:

  1. Download from CodePlex
    1. Click on the "Source Code" tab (http://sharpmap.codeplex.com/SourceControl/list/changesets)
    2. Click "Download" in the "Latest Version" frame.
    3. Accept the license agreement and pick a place to save a zip-file of the current version, unpack.
    4. Open solution and compile.
  2. Use subversion client (TortoiseSVN)
    1. Get youself a copy of TortoiseSVN and install.
    2. Open Explorer, choose place to save your copy of SharpMap, and right-click the mouse.
    3. From the context-menu choose "checkout" and fill in the following url: https://SharpMap.svn.codeplex.com/svn
      Username and password are the same as on the codeplex site.
    4. Open solution file and compile.

I suggest you develop your application in the same solution file, at least in the early stages, so you can easyly see where it does not work

Hth FObermaier

Sep 30, 2010 at 11:01 AM

Thank you very much!