2010-02-16 4 views
1

J'essaie de ramasser Svn.NET (http://www.pumacode.org/projects/svndotnet/) bibliothèque pour une utilisation dans mon projet Mono. J'ai essayé de compiler son projet mockapp -> svnmockapp (http://www.pumacode.org/projects/svndotnet/browser/trunk/SvnMockApp), je suis capable d'obtenir les références correctes et de les compiler correctement.DLL Config en Mono

Je comprends qu'il fait référence à 2 autres modules libapr (libapr-1.so.0) et svn_client (libsvn_client-1.so.0), par lesquels j'ai créé PumaCode.SvnDotNet.dll.config dans/bin/Déboguer.

C'est tout ce que j'ai fait pour essayer d'obtenir le mockapp au moins en sortie quelque chose pour montrer qu'il interfère en effet SVN. Néanmoins, cela ne fonctionne pas.

Les commandes qui sont entrées qui ne sont pas en interface SVN fonctionne très bien:

$ 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. 

commandes qui tente d'accéder SVN lance une exception:

$ 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] 

aide MONO_DEBUG_LEVEL = "debug", nous obtenons le journal suivant a collé here.

A la fin de la queue du journal, nous voyons ceci:

. 
. 
. 
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 

J'ai essayé de créer un lien symbolique les modules appropriés dans le répertoire où existe SvnTest.exe, mais persistent encore.

Comment puis-je résoudre ce problème? J'ai placé le PumaCode.SvnDotNet.dll.config dans le mauvais dossier? (Je l'ai placé à/bin/Debug et aussi essayé/bin)

Que puis-je faire pour y remédier?

Nous vous remercions de votre aide! Très appréciée!

Heres le fichier de configuration:

(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> 
+1

Pouvez-vous ajouter le fichier "PumaCode.SvnDotNet.dll.config" à la question? –

+0

ajouté! merci pour l'upvote aussi :) Une chance? – nubela

Répondre

0

Votre fichier de configuration n'a pas la bonne référence dll. Dans les journaux, Mono essaie de charger la bibliothèque libapr-1, mais votre fichier de configuration n'a qu'une entrée avec libapr. Je pense que la cartographie à droite devrait être:

<configuration> 
    <dllmap dll="libapr-1" target="/usr/lib/libapr-1.so.0"/> 
    <dllmap dll="svn_client-1" target="/usr/lib/libsvn_client-1.so.0"/> 
</configuration> 
+0

Hmm. Intéressant. J'ai essayé votre méthode mais je ne travaille pas encore. Où placeriez-vous le fichier * .dll.config? – nubela

+0

La configuration doit être placée à côté de la DLL dans le même dossier. Le journal Mono affiche-t-il de nouvelles informations ou du moins le fichier de configuration est-il récupéré? –

0

a résolu le problème en ajoutant manuellement le dllmap dans/etc/mono/config, pas la meilleure façon, mais au moins cela a fonctionné.