Поделюсь с публикой решением странной проблемы. Ситуация такая. Шлю пользователям свежие версии плагинов в виде 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 у нас подписанные, то может и будут запускаться, но не факт. Мне проверить не на чем.