Я пытаюсь подобрать библиотеку Svn.NET (http://www.pumacode.org/projects/svndotnet/) для использования в моем проекте Mono. Я попытался скомпилировать ее проект mockapp -> svnmockapp (http://www.pumacode.org/projects/svndotnet/browser/trunk/SvnMockApp), я могу получить правильные ссылки и правильно скомпилированные.
Я понимаю, что он ссылается на 2 других модуля libapr (libapr-1.so.0) и svn_client (libsvn_client-1.so.0), с помощью которых я создал PumaCode.SvnDotNet.dll.config в / bin / Отладка.
Это все, что я сделал, чтобы попытаться заставить mockapp хотя бы вывести что-то, чтобы показать, что это действительно интерфейс SVN. Тем не менее, это не работает.
Введенные команды, которые не взаимодействуют с SVN, работают нормально:
$ mono SvnTest.exe -usage
Usage: SvnTest <subcommand> [options]
Short Options: ~?.V
Subcommands: add, checkout[co], status[st], update[up]
For help on subcommands, use the -?/--help subcommand option.
Команды, пытающиеся получить доступ к SVN, выдают исключение:
$ mono SvnTest.exe st
An exception was thrown by the type initializer for PumaCode.SvnDotNet.AprSharp.Apr
Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object
at PumaCode.SvnDotNet.SubversionSharp.SvnMockApp.CmdBase.Run (PumaCode.SvnDotNet.SubversionSharp.SvnMockApp.SubCommand sc, System.String[] args) [0x00000]
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000]
--- End of inner exception stack trace ---
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000]
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000]
at PumaCode.SvnDotNet.SubversionSharp.SvnMockApp.Application.Run (System.String[] args) [0x00000]
at PumaCode.SvnDotNet.SubversionSharp.SvnMockApp.Application.Main (System.String[] args) [0x00000]
Используя MONO_DEBUG_LEVEL = "debug", мы вставляем следующий журнал сюда .
В конце журнала мы видим это:
.
.
.
Mono-INFO: DllImport attempting to load: 'libapr-1'.
Mono-INFO: DllImport loading location: 'libapr-1.so'.
Mono-INFO: DllImport error loading library: 'libapr-1.so: cannot open shared object file: No such file or directory'.
Mono-INFO: DllImport loading library: './libapr-1.so'.
Mono-INFO: DllImport error loading library './libapr-1.so: cannot open shared object file: No such file or directory'.
Mono-INFO: DllImport loading: 'libapr-1'.
Mono-INFO: DllImport error loading library 'libapr-1: cannot open shared object file: No such file or directory'.
Mono-INFO: DllImport attempting to load: 'libapr-1'.
Mono-INFO: DllImport loading location: 'libapr-1.so'.
Mono-INFO: DllImport error loading library: 'libapr-1.so: cannot open shared object file: No such file or directory'.
Mono-INFO: DllImport loading library: './libapr-1.so'.
Mono-INFO: DllImport error loading library './libapr-1.so: cannot open shared object file: No such file or directory'.
Mono-INFO: DllImport loading: 'libapr-1'.
Mono-INFO: DllImport error loading library 'libapr-1: cannot open shared object file: No such file or directory'.
Mono-INFO: DllImport attempting to load: 'libapr-1'.
Mono-INFO: DllImport loading location: 'libapr-1.so'.
Mono-INFO: DllImport error loading library: 'libapr-1.so: cannot open shared object file: No such file or directory'.
Mono-INFO: DllImport loading library: './libapr-1.so'.
Mono-INFO: DllImport error loading library './libapr-1.so: cannot open shared object file: No such file or directory'.
Mono-INFO: DllImport loading: 'libapr-1'.
Mono-INFO: DllImport error loading library 'libapr-1: cannot open shared object file: No such file or directory'.
An exception was thrown by the type initializer for PumaCode.SvnDotNet.AprSharp.Apr
Я попытался создать символическую ссылку на соответствующие модули в каталоге, где существует SvnTest.exe, но это все еще сохраняется.
Как я могу это исправить?
Поместил ли я PumaCode.SvnDotNet.dll.config в неправильную папку? (Я поместил его в / bin / Debug, а также попытался / bin)
Что я могу сделать, чтобы исправить это?
Спасибо за вашу помощь! Очень ценится!
Вот файл конфигурации:
(PumaCode.SvnDotNet.dll.config)
<configuration>
<dllmap dll="libapr" target="/usr/lib/libapr-1.so.0"/>
<dllmap dll="svn_client-1" target="/usr/lib/libsvn_client-1.so.0"/>
</configuration>