Не публикуйте bundle в архиве ZIP

Автор Тема: Не публикуйте bundle в архиве ZIP  (Прочитано 7198 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн avcАвтор темы

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Поделюсь с публикой решением странной проблемы. Ситуация такая. Шлю пользователям свежие версии плагинов в виде bundle в архиве zip. Все было прекрасно, пока сегодня у одного американца на двух компьютерах сразу новая  версия не заработала. Кнопочки в Автокаде проявляются, плагин вроде загружен, но команды не работают, т.е. моя дот-нэт dll не загружается. И проблема нигде больше не воспроизводится. Не буду описывать, сколько я бился о стену и сколько мучил пользователя. Но выяснилось, что и _Netload старую версию грузит, а на новую  выдает вот такой перл:
Цитировать
Cannot load assembly. Error details: System.IO.FileLoadException: Could not load file or assembly 'file:///C:\Users\.....dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
File name: 'file:///C:\.......dll' ---> System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.
Много слов, мало смысла. А по ссылке еще круче. Там все про версии дот-нэта, но все мои перекомпиляции ни к чему не привели. Советуют еще куда-то записать <loadFromRemoteSources enabled="true|false"/>, но не сознаются куда именно.
Короче оказалось вот что. Если нам не повезло с пользователем, и он скачал zip с помощью IE или Edge, то эти твари влезают в архив и модифицируют dll! Где-то ставится метка, что файл из интернета и выполнять его ни в коем случае нельзя. Сколько не разархивируй, не копируй из папки в папку - dll испорчена.
Решение очевидно: не пользоваться говнобраузерами от мелкомягких архивировать 7z, о котором мелкомягкие не знают или ставить пароль на архив. Те же самые dll из архива 7z прекрасно запускаются из под Автокада.
Можно было бы делать каждый раз самопальный инсталлятор. Но msi (без цифровой подписи) выкачать через IE - тоже задачка не для слабаков. Потому и использую простые архивы.
Есть шанс, что если dll у нас подписанные, то может и будут запускаться, но не факт. Мне проверить не на чем.

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Не публикуйте bundle в архиве ZIP
« Ответ #1 : 29-03-2016, 22:49:59 »
Вообще-то решение намного проще) Отредактировать файл acad.exe.config (о чем вам и написано в ошибке)
Извините, вам запрещён просмотр содержимого спойлеров.

И вот ссылки на MSDN - https://msdn.microsoft.com/ru-ru/library/0kk0kk35(v=vs.100).aspx, https://msdn.microsoft.com/ru-ru/library/1fk1t1t0(v=vs.110).aspx

Оффлайн avcАвтор темы

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Re: Не публикуйте bundle в архиве ZIP
« Ответ #2 : 29-03-2016, 23:25:59 »
Вообще-то решение намного проще
Неее, это с нашей колокольни проще, но пользователю я б такое даже не стал пытаться предлагать.
А вот один из пытливых пользователей обнаружил, что оказывается в свойствах ZIP файла при некоторых обстоятельствах может появиться длинный текст о закачке файла с интернета и галочка "разблокировать". Вот это уже можно советовать пользователям. Хотя у меня не появляется. Может это UAC пишет?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Не публикуйте bundle в архиве ZIP
« Ответ #3 : 29-03-2016, 23:41:44 »
avc
А ведь мы это уже обсуждали на форуме. И неоднократно. Например: http://adn-cis.org/forum/index.php?topic=3196.msg13094#msg13094
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн avcАвтор темы

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Re: Не публикуйте bundle в архиве ZIP
« Ответ #4 : 30-03-2016, 00:03:36 »
Дааааа, ошибочка та самая. Странно что поиском не нашел ту тему.... Посыпаю голову пеплом... Удалить тему? Хотя я нашел неописанный ранее вариант с защитой от этой гадости другим архиватором.

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Не публикуйте bundle в архиве ZIP
« Ответ #5 : 30-03-2016, 00:55:27 »
А ведь мы это уже обсуждали на форуме.
А ещё раньше писали об этом в блогах:
Цитата: Андрей Бушман
Дело в том, что  .NET файлы DLL и EXE могут быть заблокированными. Эту блокировку принудительно устанавливают различные программы, посредством которых происходит передача указанных файлов по сети. Например, нередко таким поведением "страдают" браузеры, почтовые клиенты, а так же Skype. Получив по сети исполняемый файл или библиотеку, написанные на .NET, обязательно проверьте их на предмет блокировки. Если файлы заблокированы - разблокируйте их.
Хотя я нашел неописанный ранее вариант с защитой от этой гадости другим архиватором.
Переименуй расширение отправляемого файла архива и будет тебе счастье. Клиент, получив "бандероль", переименует обратно - никакие галочки снимать не придётся.

Отмечено как Решение Александр Ривилис 27-04-2019, 18:13:40

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Не публикуйте bundle в архиве ZIP
« Ответ #6 : 30-03-2016, 09:59:24 »
Удалить тему? Хотя я нашел неописанный ранее вариант с защитой от этой гадости другим архиватором.
Оставим. Смысла удалять не вижу.
А вот один из пытливых пользователей обнаружил, что оказывается в свойствах ZIP файла при некоторых обстоятельствах может появиться длинный текст о закачке файла с интернета и галочка "разблокировать".
Свойство прописывается не в сам файл архива (или exe, dll, и т.д.) а в потоки файловой системы NTFS (на FAT/FAT32 не работает): https://support.microsoft.com/ru-ru/kb/883260
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение