# клонируем рекурсивно, т.к. там ссылка на другой репозиторий
git clone --recursive https://github.com/yar229/WebDavMailRuCloud.git
# тянем последнюю версию nuget, если таковой еще нет
wget https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -O nuget.exe --no-check-certificate
# восстанавливаем пакеты nuget
mono nuget.exe restore WebDavMailRuCloud/WebDAVMailRuCloud.sln
# пробуем выполнить сборку решения
MONO_IOMAP=case xbuild WebDavMailRuCloud/WebDAVMailRuCloud.sln
Если получаем ошибку:
MailRuCloudApi.cs(1020,51): error CS0019: Operator `>' cannot be applied to operands of type `long' and `object'
Вот эта строчка:
https://github.com/yar229/Mail.Ru-.net-cloud-clien...
Открываем локальную копию указанного файла и добавляем скобки (кстати, можно сделать
pull request):
return (fileStream.Length > 0) as object;
Пробуем собрать еще раз:
MONO_IOMAP=case xbuild WebDavMailRuCloud/WebDAVMailRuCloud.sln
В случае успеха получаем что-то типа этого:
18 Warning(s)
0 Error(s)
Пробуем запустить:
mono WebDavMailRuCloud/WDMRC.Console/bin/Debug/wdmrc.exe --help
Получаем:
log4net:ERROR Could not create Appender [ColoredConsoleAppender] of type [log4net.Appender.ColoredConsoleAppender]. Reported error follows.
System.EntryPointNotFoundException: GetConsoleOutputCP
...
В суть не буду вникать, но очевидно, что какая-то проблема с
log4net. Можно просто отключить
log4net. Откройте файл конфигурации:
nano WebDavMailRuCloud/WDMRC.Console/bin/Debug/wdmrc.exe.config
Замените ветку
<log4net>...</log4net> на:
<log4net threshold="OFF" />
У меня с параметром
--help запустилось нормально, дальше не стал смотреть:
mono WebDavMailRuCloud/WDMRC.Console/bin/Debug/wdmrc.exe --help
WebDAVCloudMailRu 1.0.0.0
yar229@yandex.ru
-p, --port Required. WebDAV server port
-l, --login Required. Login to Mail.ru Cloud
-s, --password Required. Password to Mail.ru Cloud
--maxthreads (Default: 5) Maximum concurrent connections to cloud.mail.ru
--user-agent "browser" user-agent
--help Display this help screen.
--version Display version information.
UPD: Попробовал запустить с
login и
password, получил ошибку вида:
Unhandled Exception:
System.InvalidOperationException: Property 'enabled' not found in configuration element
at System.Configuration.ConfigurationElement.get_Item (System.String property_name) <0xb50f5608 + 0x000a7> in :0
at System.Configuration.ConfigurationElement.get_Item (System.Configuration.ConfigurationProperty property) <0xb50f55d8 + 0x0001f> in :0
at System.Net.Configuration.DefaultProxySection.get_Enabled () <0xb506a270 + 0x0001b> in :0
at MailRuCloudApi.Account.Login () <0xb50699f8 + 0x000af> in :0
Проблема в получении значений прокси-сервера по умолчанию:
https://github.com/yar229/Mail.Ru-.net-cloud-clien...
По идее, прокси-сервер по умолчанию можно отключить/настроить в файле конфигурации приложения, добавив в секцию
configuration нечто вроде этого:
<system.net>
<defaultProxy enabled="false" useDefaultCredentials="false">
<proxy/>
<bypasslist/>
<module/>
</defaultProxy>
</system.net>
Но у меня почему-то это не сработало. Можно удалить
указанные строки (
if (new DefaultProxySection().Enabled)...) из файла и собрать решение заново:
nano WebDavMailRuCloud/MailRuNetCloudClient/MailRuCloudApi/Account.cs
MONO_IOMAP=case xbuild WebDavMailRuCloud/WebDAVMailRuCloud.sln
У меня с
login и
password запустилось:
WebDAV server running. Press 'x' to quit.
Если потребуется журналирование (
log4net) и прокси, то придется разбираться в этих проблемах более углубленно.
-----------------------------------------------------------------------------
В проверке принимали участие:
- Debian v8.1
- Mono v4.2.3
- XBuild Engine v12.0
- Nuget v3.4.4.1321