Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Захаров Максим от 11-09-2017, 15:54:02

Название: Не удается загрузить сборку
Отправлено: Захаров Максим от 11-09-2017, 15:54:02
Здравствуйте.
На одном из компов не грузится сборка. Выдает такую ошибку-сообщение
Имя файла: 'file:///D:\_CIVIL\STPRGeoTools\NET\Kadastr(x64)2017.dll' ---> System.NotSupportedException: Предпринята попытка загрузить сборку из сетевого ресурса, что в предыдущих версиях .NET Framework могло привести к помещению сборки в "песочницу". Этот выпуск .NET Framework не включает политику CAS по умолчанию, поэтому данная загрузка может быть опасной. Если эта нагрузка не предназначена для изоляции сборки, включите переключатель loadFromRemoteSources. Дополнительные сведения см. на странице http://go.microsoft.com/fwlink/?LinkId=155569.
Что делать? Сборка нормальная у всех запускается, первый раз столкнулся с этой проблемой.
Название: Re: Не удается загрузить сборку
Отправлено: Александр Ривилис от 11-09-2017, 16:28:02
Возможно Windows воспринимает это приложение как загруженное из интернета, заблокирует его и не захочет загружать в AutoCAD. Чтобы разблокировать arx/dll-файлы (да и другие исполняемые файлы) необходимо выполнить разблокировку этих файлов, т.е. следующее:
Название: Re: Не удается загрузить сборку
Отправлено: Захаров Максим от 11-09-2017, 17:51:23
Спасибо, да так и получилось
Название: Re: Не удается загрузить сборку
Отправлено: Alexandr1993 от 29-11-2022, 18:22:51
Доброго времени суток. Подскажите, пожалуйста, что делать. Проблема точно такая же: по команде NETLOAD не загружается dll для AutoCad с такой же ошибкой.
Но, файлы (как на решении из видео) у меня не заблокированы (кнопка Разблокировать отсутствует). Весь проект перенес с локального ПК на сервер через удаленный рабочий стол.

Такая же проблема у меня уже была с другим проектом на Winforms, я отыскал на каком-то зарубежном форуме информацию о том, что в файле с разрешением resx нужно удалить (через блокнот) информацию (на форуме был приведен пример). Сайт с форумом мне уже не найти да и файла resx сейчас у меня нет.

Название: Re: Не удается загрузить сборку
Отправлено: Александр Ривилис от 29-11-2022, 20:46:42
Проблема точно такая же: по команде NETLOAD не загружается dll для AutoCad с такой же ошибкой.
dll на сервере? Очень не рекомендую это делать. Копируйте dll на локальный компьютер и загружайте его оттуда.
Название: Re: Не удается загрузить сборку
Отправлено: Алексей Кулик от 29-11-2022, 23:51:55
Поддерживаю. К сожалению, блог Андея Бушмана приказал долго жить - но там в свое время была статья, что нужно сделать, чтобы обеспечить загрузку сборок с сервера. Насколько я помню, помимо необходимости доступа к компу под правами как минимум локального админа, есть еще проблема обновления серверной библиотеки: пока файл загружен хотя бы у одного пользователя, файл заблокирован и обновлению не подлежит.
Могу ошибаться.
Название: Re: Не удается загрузить сборку
Отправлено: doctorRAZ от 30-11-2022, 05:54:05
пока файл загружен хотя бы у одного пользователя, файл заблокирован и обновлению не подлежит
Win не позволяет удалить загруженный exe, dll,  но дает его переименовать, поэтому
Переименовываю существующие файлы на bak и  копирую новые
Название: Re: Не удается загрузить сборку
Отправлено: Alexandr1993 от 30-11-2022, 08:59:25
Благодарю за рекомендации. Перенос проекта на диск С действительно решил данную проблему.

Воспользуюсь уж тогда случаем и спрошу у опытных людей: а как вы (разработчики) осуществляете распространение (обновление) dll файлов на ПК пользователей организации? Исполняемый bat файл, который выполняет обновление необходимых файлов? Или есть какие-то более изящные и/или практичные способы?
Название: Re: Не удается загрузить сборку
Отправлено: Алексей Кулик от 30-11-2022, 09:19:09
Поскольку я лиспописатель - то и обновляю через mnl / lsp. Там же выполняю и загрузку dll.
Название: Re: Не удается загрузить сборку
Отправлено: doctorRAZ от 30-11-2022, 09:24:24
Исполняемый bat файл, который выполняет обновление необходимых файлов?
загруженная библиотека вполне может проверить наличие обновлений (в сети или интернете)

1 спросить у пользователя следует ли обновлять
2 скачать нужные файлы
3 если нормально все скачалось, переименовать существующие (например расширение bak)
4 переместить скачанные файлы на место переименованных
5 уведомить пользователя о необходимости перезагрузки приложения
при следующем запуске зачистить bak файлы[/list]