MailKit не добавляется в проект

SlipDez

Client
Регистрация
18.07.2018
Сообщения
430
Благодарностей
83
Баллы
28
Пробую добавить MailKit + MimeKit в проект. Все попытки приводят к ошибкам

Пошагово что делал
1) Скачивал dll через Nuget в VS
2) Скачивал напрямую через Nuget


Добавляю через ссылки CAS пишет стд ошибки

Выполнение действия CSharp OwnCode. [Строка: 24; Cтолбец: 0] Не удалось загрузить файл или сборку "MailKit, Version=2.1.0.0, Culture=neutral, PublicKeyToken=4e064fe7c44a8f1b" либо одну из их зависимостей. Найденное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
есть предположение что из за конфликта версий так как в папке ZP была найдена MimeKit.dll и при добавлении другой версии выбивает ошибку. Но возникает вопрос как я могу узнать версию чтобы скачать нужную версию MileKit.dll? В документации про это не пишется не слова
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 617
Благодарностей
1 397
Баллы
113
Пробую добавить MailKit + MimeKit в проект. Все попытки приводят к ошибкам

Пошагово что делал
1) Скачивал dll через Nuget в VS
2) Скачивал напрямую через Nuget


Добавляю через ссылки CAS пишет стд ошибки

Выполнение действия CSharp OwnCode. [Строка: 24; Cтолбец: 0] Не удалось загрузить файл или сборку "MailKit, Version=2.1.0.0, Culture=neutral, PublicKeyToken=4e064fe7c44a8f1b" либо одну из их зависимостей. Найденное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
есть предположение что из за конфликта версий так как в папке ZP была найдена MimeKit.dll и при добавлении другой версии выбивает ошибку. Но возникает вопрос как я могу узнать версию чтобы скачать нужную версию MileKit.dll? В документации про это не пишется не слова
Не работает мейлкит длл в зенно, как мне сообщили разрабы - делайте ехе файл с решением и вызывайте его в зенно. Я себе делал когда-то подобное, только ехе и код вызова платный к сожалению
 

SlipDez

Client
Регистрация
18.07.2018
Сообщения
430
Благодарностей
83
Баллы
28
Не работает мейлкит длл в зенно, как мне сообщили разрабы - делайте ехе файл с решением и вызывайте его в зенно. Я себе делал когда-то подобное, только ехе и код вызова платный к сожалению
Разобрался. Посмотрел версию через сво-ва выкачал туже MailKit и все завелось. Из похожих тем не завелся шаблон потому что версии другие.

В целом если использовать более масштабное решение на c# то неизбежно попадаешь в ситуацию когда библиотека использует
зависимость 1
зависимость 2
зависимость 3

и сам ZP использует одну из зависимостей только другой версии и используемая библиотека становится бесполезной. Т.е если там стоит MimeKit версии N то все библиотеки которую используют отличную версию при импорте будут ругаться на конфликт а дефолтная не подойдет по версии -______________________-
 
  • Спасибо
Реакции: Gunjubasik

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 617
Благодарностей
1 397
Баллы
113
Разобрался. Посмотрел версию через сво-ва выкачал туже MailKit и все завелось. Из похожих тем не завелся шаблон потому что версии другие.
Т.е. вы запустили старую версию .dll и заработало? Если заработало, можете оставить свои контакты здесь, обычно люди ищут платное решение, предполагаю что скоро у вас попросят продать или дать .dll)
 

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 335
Благодарностей
665
Баллы
113
Можно эту попробовать
 

Вложения

  • Спасибо
Реакции: SlipDez

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 617
Благодарностей
1 397
Баллы
113
Можно эту попробовать
Это уже проверенная версия или только в теории может оказаться рабочей? Дело в том, что старые версии мейлкита, если я верно помню, не поддерживают получение писем с новой авторизацией аутлук.
 
Последнее редактирование:

Alex91

Активный пользователь
Регистрация
15.08.2024
Сообщения
672
Благодарностей
189
Баллы
43
Пробую добавить MailKit + MimeKit в проект. Все попытки приводят к ошибкам

Пошагово что делал
1) Скачивал dll через Nuget в VS
2) Скачивал напрямую через Nuget


Добавляю через ссылки CAS пишет стд ошибки

Выполнение действия CSharp OwnCode. [Строка: 24; Cтолбец: 0] Не удалось загрузить файл или сборку "MailKit, Version=2.1.0.0, Culture=neutral, PublicKeyToken=4e064fe7c44a8f1b" либо одну из их зависимостей. Найденное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
есть предположение что из за конфликта версий так как в папке ZP была найдена MimeKit.dll и при добавлении другой версии выбивает ошибку. Но возникает вопрос как я могу узнать версию чтобы скачать нужную версию MileKit.dll? В документации про это не пишется не слова
Тут 3 способа...
1. Использовать версии DLL , которые есть в Зеннопостере. При обновлении зеннопостера, надо проверять актуальность версии DLL и если изменилась копировать новые и переподключать ссылки gac в проекте, с последующей перекомпиляцией.
2. Использовать свои версии DLL с репозитория, заменив ими DLL в папке progs и отредактировав ProjectMaker.exe.config и ZennoPoster.exe.config. В этом случае сам проект не надо будет изменять с выходом новой версии зеннопостера, но придется постоянно копировать DLL в progs и изменять ProjectMaker.exe.config и ZennoPoster.exe.config. И да, копировать их не получится, так как в каждой версии зеннопостера, они разные. Только встраивать свои изменения в новый файл, новой версии.
3. Можно работать через сторонний запускной файл. Из плюсов, независимость от зеннопостера, из минусов, относительно медленный запуск и дополнительный жор проца, на постоянные запуски новых потоков этого файла. Не сравнить конечно с запуском инстанста, но все же.

Что удобнее, то и можно использовать.
 
  • Спасибо
Реакции: SlipDez

Alex91

Активный пользователь
Регистрация
15.08.2024
Сообщения
672
Благодарностей
189
Баллы
43
обычно люди ищут платное решение, предполагаю что скоро у вас попросят продать или дать .dll)
Продавать DLL которая лежит в папке progs зеннопостера ?
Хм... Отличный стартап ;-)
 
  • Спасибо
Реакции: Dmitriy Ka

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 335
Благодарностей
665
Баллы
113
Это уже проверенная версия или только в теории может оказаться рабочей? Дело в том, что старые версии мейлкита, если я верно помню, не поддерживают получение писем с новой авторизацией аутлук.
Авторизацию аутлука тут не проверял.
 
  • Спасибо
Реакции: Gunjubasik

SlipDez

Client
Регистрация
18.07.2018
Сообщения
430
Благодарностей
83
Баллы
28

SlipDez

Client
Регистрация
18.07.2018
Сообщения
430
Благодарностей
83
Баллы
28
Т.е. вы запустили старую версию .dll и заработало? Если заработало, можете оставить свои контакты здесь, обычно люди ищут платное решение, предполагаю что скоро у вас попросят продать или дать .dll)
Это не проблема, зачем платить вот инструкция:
1) Проверяем зависимости в папке progs если есть смотрим версии и скачиваем под нужную версию что касается MileKit она работает в связке с MimeKit и версии должны быть одинаковые n0n3mi1y оставил актуальную версию, если не подходит надо смотреть версию MimeKit которая в ZP скрин выше приложил и скачивать nuget пакет MileKit.
2) Далее скачиваешь nuget пакет testpackeg.nuget открываешь любым архиватором и из папки libs копируешь dll
упрощенная инструкция готова) это чтобы не запускать VS и не выкачивать оттуда nuget пакеты и компилировать.
Единственное с чем у меня проблемы возникают это с объединением dll. Пытался объеденить dll Netherum (ABI Contracts ...) в одну dll с помощью ILMerge но не завелось. Если кто-то подскажет буду признателен). Цель не таскать множество dll а лишь 1 которая в себе содержит все нужные
Все скриншоты
130283

130284

130285

130286

130287

130288
130280

130289
 
  • Спасибо
Реакции: Gunjubasik

SlipDez

Client
Регистрация
18.07.2018
Сообщения
430
Благодарностей
83
Баллы
28
1. Использовать версии DLL , которые есть в Зеннопостере. При обновлении зеннопостера, надо проверять актуальность версии DLL и если изменилась копировать новые и переподключать ссылки gac в проекте, с последующей перекомпиляцией.
Такой способ пытаюсь использовать


2. Использовать свои версии DLL с репозитория, заменив ими DLL в папке progs и отредактировав ProjectMaker.exe.config и ZennoPoster.exe.config. В этом случае сам проект не надо будет изменять с выходом новой версии зеннопостера, но придется постоянно копировать DLL в progs и изменять ProjectMaker.exe.config и ZennoPoster.exe.config. И да, копировать их не получится, так как в каждой версии зеннопостера, они разные. Только встраивать свои изменения в новый файл, новой версии.
Был полезно по поводу config, буду иметь ввиду. Но есть шанс что все сломается так как в новых версиях могут изменяться функции /классы / параметры или структура библиотеки и все сломается.
3. Можно работать через сторонний запускной файл. Из плюсов, независимость от зеннопостера, из минусов, относительно медленный запуск и дополнительный жор проца, на постоянные запуски новых потоков этого файла. Не сравнить конечно с запуском инстанста, но все же.
Такой способ тоже часто использую, для легких задач просто запускаю файл. Для более увесистых и сложных такой способ становится слишком медленным и затратным по ресурсам. Предлагаю сделать как я. Делается exe для выполнения нужных операции и запускается а работа через него будет посредством API localhost задержки минимальные. Ресурсов столько не ест и для однотипных задач очень хорошо подходит. Я так делал с нейронкой. Т.е запускаю сервер и он слушает на определенном порту а все обращения происходят через 127.0.0.1:port. Если надо чтобы сам ZP запускал можно делать lock чтобы одновременно только 1 Instance мог проверять запуск сервера если не запущен запускает и разблокирует lock. Вообще свобода фантазии)
 

sydoow

Client
Регистрация
22.06.2011
Сообщения
299
Благодарностей
155
Баллы
43
Юзаю маилкит много лет
Хз что за версия

1740310528597.png

C#:
using MailKit.Net.Imap;
using MailKit;
using MailKit.Search;

Мб чтото тут избыточно - пофиг, работает не трогай))
 

Вложения

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