Как скомпилировать либу с github под зенку?

justanotherVar

Пользователь
Регистрация
18.09.2016
Сообщения
66
Благодарностей
2
Баллы
8
Интересует TLsharp например.
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 233
Благодарностей
5 846
Баллы
113
Не очень понял в чем проблема... До версии 5.11.7.0 надо компилировать библиотеку под .Net 4.0, в версии выше - под Net.4.5.
 

justanotherVar

Пользователь
Регистрация
18.09.2016
Сообщения
66
Благодарностей
2
Баллы
8
Не очень понял в чем проблема... До версии 5.11.7.0 надо компилировать библиотеку под .Net 4.0, в версии выше - под Net.4.5.
А подключать как? Просто прописывая using и все?

А сам процесс компиляции под определенный фрейм- не могли бы дать почитать как именно?

Благодарствую.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 233
Благодарностей
5 846
Баллы
113
А подключать как? Просто прописывая using и все?

А сам процесс компиляции под определенный фрейм- не могли бы дать почитать как именно?

Благодарствую.
Я могу вам подсказать только по функционалу ZennoPoster.
Библиотеку нужно скопировать в папку ExternalAssemblies в директории ZennoPoster\Progs.
Затем добавить эту библиотеку в проект из папки в ExternalAssemblies через ссылки из GAC (действие Свой код>Ссылки из GAC).
После чего включить нужную директиву Using.
По компиляции библиотек пожалуйста смотрите документацию к Net.Framework.
 
  • Спасибо
Реакции: Prosto и justanotherVar

justanotherVar

Пользователь
Регистрация
18.09.2016
Сообщения
66
Благодарностей
2
Баллы
8
Я могу вам подсказать только по функционалу ZennoPoster.
Библиотеку нужно скопировать в папку ExternalAssemblies в директории ZennoPoster\Progs.
Затем добавить эту библиотеку в проект из папки в ExternalAssemblies через ссылки из GAC (действие Свой код>Ссылки из GAC).
После чего включить нужную директиву Using.
По компиляции библиотек пожалуйста смотрите документацию к Net.Framework.
Спасибо.
 

shtift

Client
Регистрация
29.07.2015
Сообщения
148
Благодарностей
290
Баллы
63
Я могу вам подсказать только по функционалу ZennoPoster.
Библиотеку нужно скопировать в папку ExternalAssemblies в директории ZennoPoster\Progs.
Затем добавить эту библиотеку в проект из папки в ExternalAssemblies через ссылки из GAC (действие Свой код>Ссылки из GAC).
После чего включить нужную директиву Using.
По компиляции библиотек пожалуйста смотрите документацию к Net.Framework.
А можно как-нибудь сделать ручную подгрузку используемых сборок? Или поставлять используемые библиотеки с шаблоном, чтобы пользователю не приходилось вручную класть библиотеку в ExternalAssemblies.
К примеру, есть событие AssemblyResolve, но в ZennoPoster мне не удалось его использовать.
Можно загружать через Assembly.LoadFrom/File, но тогда можно будет пользоваться только типами, которые созданы через активатор, а те же методы расширений работать не будут.
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113
А подключать как? Просто прописывая using и все?

А сам процесс компиляции под определенный фрейм- не могли бы дать почитать как именно?

Благодарствую.
Прошло время. И я сам столкнулся с той же проблемой что и ТС. Хоть у меня ничего и не получилось конкретно с TLsharp, но опишу хоть пошаговое руководство для компиляции DLL для таких нубов как я, а то тема висит на первом месте поиска, но решений нет. Предупрежу что я в теме слабо плаваю, все решения нагуглил, так что спецы могут подправить:
1. Скачиваем и устанавливаем Visual Studio. Я взял с рутрекера предпоследнюю версию («Microsoft Visual Studio 2015 14.0.25431.01 Update 3»).
Скачиваем с распаковываем с гитхаба архив с файлами. Или можем напрямую подключиться к гитхабу в самой VS, - читаем статью «КАК ИСПОЛЬЗОВАТЬ GIT В MICROSOFT VISUAL STUDIO ENTERPRISE 2015 RC».
2. Дальше делаем сборку DLL как советуют в этом посте:
… Скачай Visual Studio желательно поновее. Открой файл проекта. Это файл который над папками находится .sln. В Visual Studio можешь ничего не менять раз так уже поменял. Зайди там в меню Сборка-> Собрать решение или F6 нажми. Как только внизу будет написано что успешно собрано зайди в bin\Debug там лежит готовая программа.
Файлы появятся в той же папке где исходники лежали. Я собирал на родном app.config, не внося в него правки. Никаких уточнений под какой .Net делать не нашел. Просто на дефолтных настройках сделал. У меня файлы здесь валялись:
Код:
\TLSharp-master\TLSharp.Core\bin\Debug\
TLSharp.Core.dll
TLSharp.Core.pdb
TeleSharp.TL.dll
TeleSharp.TL.pdb
Ionic.ZLib.dll
BigMath.dll
BigMath.xml
Хотя папок Debug с похожим содержанием насоздавало и в других подкаталогах, хз нужны ли они.
Я так понял что главное подключить TLSharp.Core.dll, так как автор библиотеки на своем сайте пишет:
1. Copy source code from GitHub
2. Compile it in VS 2015
3. Add reference to TLSharp.Core.dll
Но в папку ExternalAssemblies (у меня это «c:\Program Files (x86)\ZennoLab\RU\ZennoPoster Pro\5.12.2.0\Progs\ExternalAssemblies\») я закину их все 7 шт.
В шаблоне GAC добавил только TLSharp.Core из папки ExternalAssemblies. И в Using добавил:
Код:
using TLSharp.Core;
В итоге шаблон вроде как понял подключение DLL, так как при авто-заполнение в зеновском C#-кубике подтягивает элементы TLSharp.


Вот только там пипец какой сложный код. Я не прогер, но прикинул что в зенку TLSharp трудно будет нормально перенести, так как используются «async await» элементы. Явно одним блоком не обойтись, может городить что-то в общем коде надо...
Есть у кого-то рабочий шаблон с нормально работающей библиотекой? Или другие варианты работы с Telegram API (не путать с их обычным Bot API на Post-Get запросах). Конкретно мне надо использовать метод messages.getHistory() для парсинга тектовки паблик-чатов (supergroups). Гуглил, здесь идеи для PHP постили, в остальных источниках под C# рекомендуют долбить этот TLSharp.
 
Последнее редактирование:

LaGir

Client
Регистрация
01.10.2015
Сообщения
211
Благодарностей
852
Баллы
93
В шаблоне GAC добавил только TLSharp.Core из папки ExternalAssemblies.
TeleSharp.TL.dll тоже добавь, иначе точно работать не будет. Ну и на юзинги не стоит скупиться, удобнее писать код и использовать примеры из сети. :-)
Я не прогер, но прикинул что в зенку TLSharp трудно будет нормально перенести, так как используются «async await» элементы. Явно одним блоком не обойтись, может городить что-то в общем коде надо...
Чтоб методы асинхронно работали, нужно, конечно, в Общим коде их оборачивать (как тут описано), но для последовательного выполнения в сниппете - в общем-то, не обязательно. Можно и просто так запускать:
C#:
var client = new TelegramClient(apiID, apiHash);
var connect = client.ConnectAsync().Result;

if (connect)   
    project.SendInfoToLog("Успешно подключились!");
 
  • Спасибо
Реакции: orka13

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113

andrey-ka

Client
Регистрация
03.06.2018
Сообщения
854
Благодарностей
246
Баллы
43

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113
нет.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)