2014-09-16 2 views
0

Я использую mono mcs на Ubuntu. У меня есть программа Monogame, которая должна найти библиотеки Monogame в подкаталоге под названием «libs». Он компилируется отлично, но когда дело доходит до времени выполнения, он дает мне ошибку, говоря, что он не может ее найти.Mono binary не найден DLL в подкаталоге

Необработанное исключение: System.IO.FileNotFoundException: Не удалось загрузить файл или сборку 'MonoGame.Framework, Version = 3.1.2.0, Culture = нейтрально, PublicKeyToken = нуль' или один из его зависимостей. Имя файла: 'MonoGame.Framework, Version = 3.1.2.0, Culture = neutral, PublicKeyToken = null' [ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Не удалось загрузить файл или сборку «MonoGame.Framework, Version = 3.1.2.0, Culture = neutral, PublicKeyToken = null или одна из его зависимостей. Имя файла: 'MonoGame.Framework, Version = 3.1.2.0, культура = нейтральной, PublicKeyToken = нуль'

Мои флаги компилятора следующим образом:

mcs -r:libs/MonoGame.Framework.dll -target:winexe -out:main.exe *.cs 

даже не предупреждение от компилятора , но он не может работать. Я пробовал много вариантов этих флагов, и я не могу найти вариант статического компиляции (и я действительно этого не хочу). Он работает нормально, когда библиотеки находятся в одном каталоге, но в подкаталоге он не работает. Я пробовал предполагаемые решения, такие как «AppDomain.CurrentDomain» и «Environment.SetEnvironmentVariable», но это не сработало и, честно говоря, это плохая идея.

ответ

1

Этот подкаталог не будет частью пути поиска. Если вы должны поместить его в подкаталог, я бы порекомендовал вам решить эту проблему с помощью конфигурационного файла приложения, которое specifies a private search path:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <probing privatePath="libs" /> 
    </assemblyBinding> 
    </runtime> 
</configuration> 
+0

Что мне делать с этим? Могу ли я использовать это вне среды IDE? Я использую командную строку. – Konata

+0

Файлы конфигурации приложения не имеют ничего общего с IDE. Это всего лишь файл с именем 'yourapp.exe.config' –

+0

Вот и все! Большое спасибо. Мальчик, который был уверен, был не таким прямым, как другие языки. – Konata