Наприклад нову лібу по роботі з гугл апі.



.net core

Нравится

3 комментария

Добрий день,

 

Наразі єдиним рішенням являється видалити вже існуючу бібліотеку і встановити її потім заново щоб не було проблем в залежностях.

 

З повагою,

Дарій

Та після апдейту все злетить, так? 

Добрий день,

 

Так, після апдейту нова бібліотека має зайти без проблем.

 

З повагою,

Дарій

Показать все комментарии

Привет, с наступающим или уже наступившим.



Есть следующая ошибка:

System.IO.FileLoadException: Не удалось загрузить файл или сборку "Google.Apis, Version=1.49.0.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab" либо одну из их зависимостей. Найденное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Имя файла: 'Google.Apis, Version=1.49.0.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab' ---> System.IO.FileLoadException: Найденное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Ситуация:

Есть задача поиграться с GoogleSheets API со стороны Creatio, для этого нужно установить соответствующие библиотеки. 

Сначала я создал консольный проект в VS и через nuget поставил либы Google.Apis.Sheets.v4 - https://www.nuget.org/packages/Google.Apis.Sheets.v4/

Подтянулись либы GoogleSheets и зависимые тоже, в том числе Google.Apis v 1.49.0.0. Протестировав на консольном проекте, где все работало, я решил поставить эти же либы в Creatio, прикрепив их как сборки к пакету.

После компиляции приложения вылезло предупреждение что уже существует либа Google.Apis, только другая - "Google.Apis, Version=1.1.4547.22925, Culture=neutral, PublicKeyToken=edaadfbc3b0bb879" как я понимаю на ней работает синхронизация календаря и ещё что то там и возможны конфликты, но предупреждение это не ошибка, по этому я пошел дальше и использовал классы новой либы версии 1.49, и тут же получил  ошибку которую написал выше.



На счет зависимостей странность:

Я скачал сборку старую Google.Apis что бы пощупать и сразу увидел зависимость от либы "Newtonsoft.Json 4.0.4.0" хотя в системе Creatio эта же либа работает в версии 12.0.0.0. Как в системе могут присутствовать сборки которые используют в одно и то же время разные версии сборки?



Возможные решения: 

1. Переписать календарь и другой функционал под новую версию либы, удалив старую, но потом обнова и gg.

2. Попробовать сделать отдельный сервис где то "во вне" и поставить туда нужные мне либы и заделать этот сервис как посредник между гуглом и Creatio.

3. Подскажите свое, что я упускаю?

Нравится

2 комментария
Лучший ответ

Здравствуйте! Данную проблема присутствует уже очень долго. В моем случае это была проблема интеграции Creatio с  Google Analytics. И как следствие пришлось делать внешний сервис + подключил туда Rabbit для обмена данными. 

Добрый день.

Благодарю вас за то, что подметили данную проблему.

 

Так сразу мы не сможем решить данный вопрос, но по идее, вы можете завязаться на либу, без указания версии, дабы не требовать конкретную версию.

Мы со своей стороны займемся обновлением этой либы, но это будет не скоро.

Также могу порекомендовать вам реализовать ваш вариант №2.

Здравствуйте! Данную проблема присутствует уже очень долго. В моем случае это была проблема интеграции Creatio с  Google Analytics. И как следствие пришлось делать внешний сервис + подключил туда Rabbit для обмена данными. 

Показать все комментарии

Добрый день.
Стоит задача распаковать архив 7z с файлами и содержимое файлов записать в соответствующие таблицы BPMOnline 7.8
Казалось бы тривиальная задача, но всё осложняется тем, что продуктивная среда клиента развёрнута на on-demand и соответственно к файловой системе сервера доступа нет. Можно было бы воспользоваться вкладкой "Внешние сборки", но библиотека 7zip.dll написана на С++ и её подключить не представляется возможным, т.к. можно добавлять только dll-ки, написанные на C#.

Может кто сталкивался с такой задачей, а именно распаковка архива с несколькими файлами из потока?

Сам я смотрю в сторону библиотеки SevenZipSharp, а точнее класса SevenZip.Compression.LZMA.Decoder и SevenZipHelper.cs. Но пока при выполнении метода SevenZipHelper.Decompress(byteArray) получаю ошибку Data Error на шаге
decoder.Code(newInStream, newOutStream, compressedSize, outSize, null);

Буду очень благодарен за помощь. Спасибо

Нравится

7 комментариев

Здравствуйте, Игорь!

Если Вам необходимо добавить какие-либо библиотеки на облачный сервер, это можно сделать, обратившись в техническую поддержку с данной просьбой.

Что касается самого вопроса, уточните, как файлы будут попадать в систему?

Загружаться по ссылке в поток.

При попытке загрузить библиотеку 7z.dll из файловой системы BPMOnline выдаёт следующую ошибку:

Инициализатор типа "SevenZip.SevenZipLibraryManager" выдал исключение. ---> System.ArgumentException: Путь имеет недопустимую форму.

Библиотека лежит в Terrasoft.WebApp/bin/. Доступы к библиотеке для пользователя IIS_IUSRS открыт. Как мне получить доступ к dll-файлам из файловой системы?

В VisualStudio всё хорошо. Ошибка возникает только в BPMOnlline.

Здравствуйте.
Подключить к BPM’online можно только .NET-библиотеки.
Те, что написаны на С++, просто так не присоединить, нужно писать .NET-обёртки.

Что касается опыта решения задачи с распаковкой из *.7z не подскажу, к сожалению. Могу только рекомендовать поиск решения в открытых источниках.

"Александр Зубков" написал:Здравствуйте.
Подключить к BPM’online можно только .NET-библиотеки.
Те, что написаны на С++, просто так не присоединить, нужно писать .NET-обёртки.

Да, Александр, об этом я и писал в топике этой темы.

"Александр Зубков" написал:Что касается опыта решения задачи с распаковкой из *.7z не подскажу, к сожалению. Могу только рекомендовать поиск решения в открытых источниках.

В том то и дело, что если использовать чистый проект в visual Studio, то всё прекрасно работает, проблема возникает при переносе кода в "Исходный код" BpmOnline.

Вопрос остаётся открытый. Как распаковать из BPMOnline архив 7Zip?
Вариант распаковки в каталог также не работает

 var processStartInfo = new ProcessStartInfo();
 processStartInfo.FileName = @"C:\Program Files\7-Zip\7z.exe";
 processStartInfo.Arguments = @"e C:\test.7z";
 Process.Start(processStartInfo);

Возможно, что сайт, который находится в облаке не понимаем локальный путь @"C:\Program Files\7-Zip\7z.exe"

В данном случае нужно разворачивать локально сайт и проводить отладку - https://academy.terrasoft.ru/documents/technic-sdk/7-7-0/otladka-server…

Показать все комментарии