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

ADN Club => Revit API => Тема начата: enot от 14-12-2020, 22:45:57

Название: Загрузка dll с серверной папки
Отправлено: enot от 14-12-2020, 22:45:57
если dll приложения лежит не на локальном диске , а на сервере в папке (там путь как ip задан или вроде того), то возможно ли как то его оттуда подгрузить ?
В файле манифеста обычно путь прописывается как локальный путь (папка  с dll на нашем пк находится) ...
Название: Re: Загрузка dll с серверной папки
Отправлено: Александр Ривилис от 14-12-2020, 23:14:27
enot,
Скопируй на локальный диск и грузи с него - не будет таких проблем.
Название: Re: Загрузка dll с серверной папки
Отправлено: enot от 14-12-2020, 23:18:09
ну если скопировать , то конечно не будет   ;D цель как раз от этого уйти

Дело в том что к dll на сервере должны обращаться множество пк
Название: Re: Загрузка dll с серверной папки
Отправлено: Александр Ривилис от 14-12-2020, 23:23:10
ну если скопировать , то конечно не будет   ;D цель как раз от этого уйти

Дело в том что к dll на сервере должны обращаться множество пк
Это плохо. Пока они обращаются к этому файлу - он заблокирован системой и заменить его обновленной версией ты не можешь. Поэтому я и предпочитаю другую схему. На локальном диске dll-загрузчик, который с сервера копирует на локальный диск другой dll-файл и загружает его. В твоей схеме может быть масса подводных камней. Вплоть до того, что политиками запрещена загрузка по сети.
Название: Re: Загрузка dll с серверной папки
Отправлено: enot от 14-12-2020, 23:29:53
Пока они обращаются к этому файлу - он заблокирован системой и заменить его обновленной версией ты не можешь.
Вот тут хочу вставить вопрос - допустим по моей схеме происходит множественное обращение к этому файлу  - при этом не должно быть проблем ? (так как файл в режиме чтения , а не редактирования)? Иными словами к одному файлу  могут обращаться одновременно любое количество пользователей ?
Название: Re: Загрузка dll с серверной папки
Отправлено: Александр Ривилис от 14-12-2020, 23:32:09
enot,
В этом плане проблем быть не должно если не установлены ограничения на сервере на количество одновременных обращений к файлу.
Название: Re: Загрузка dll с серверной папки
Отправлено: enot от 14-12-2020, 23:33:23
Спасибо.
А если один из пользователей начал редактирование , то смогут ли остальные читать файл в этот момент ? или пока кто то читает файл , то его в принципе уже  и редактировать нельзя...
Название: Re: Загрузка dll с серверной папки
Отправлено: Александр Ривилис от 14-12-2020, 23:43:26
А если один из пользователей начал редактирование
Редактирование чего?
Название: Re: Загрузка dll с серверной папки
Отправлено: enot от 14-12-2020, 23:44:38
содержимого dll, или пример не dll а содержимое txt файла вместо него
Название: Re: Загрузка dll с серверной папки
Отправлено: Александр Ривилис от 14-12-2020, 23:48:20
содержимого dll, или пример не dll а содержимое txt файла вместо него
Хотел бы я посмотреть на пользователя, который будет редактировать dll-файл. А причем здесь txt-файл? Что-то у тебя всё в одну кучу.
Название: Re: Загрузка dll с серверной папки
Отправлено: enot от 14-12-2020, 23:50:20
Что-то у тебя всё в одну кучу.
да есть такое..
dll обращается в свою очередь к txt файлу.
Но давайте забудем про dll , пусть вместо него txt на сервере
Название: Re: Загрузка dll с серверной папки
Отправлено: enot от 14-12-2020, 23:51:52
А по поводу
если dll приложения лежит не на локальном диске , а на сервере в папке (там путь как ip задан или вроде того), то возможно ли как то его оттуда подгрузить ?
В файле манифеста обычно путь прописывается как локальный путь (папка  с dll на нашем пк находится) ...


Хотелось бы услышать мнение Александра Игнатовича, я его тут вижу

Мне конечно кажется что это вряд ли возможно. но все же

Название: Re: Загрузка dll с серверной папки
Отправлено: Olga от 21-12-2020, 07:01:23
У нас этот вопрос решен таким образом: есть папка с файлом dll на сервере (1), к которой все обращаются. Есть еще одна  папка (2)в которую кладем обновленный dll и ночью, когда все пользователи  из Revit вышли( если не вышли то есть скрипт который это проверяет и принудительно выбрасывает  из Revit), происходит копирование из папки 2 в папку 1.
Название: Re: Загрузка dll с серверной папки
Отправлено: enot от 21-12-2020, 09:17:56
А как у вас организовано обращение и чтение этого dll файла на сервере Ревитом? В файле манифеста можно прописать стандартный путь , начало которого должно иметь вид c:/programdata...  (здесь нет варианта прописать путь к серверу)
Название: Re: Загрузка dll с серверной папки
Отправлено: Olga от 21-12-2020, 09:28:53
Файл  манифеста действительно должен быть  только в C:\ProgramData.. И он у каждого пользователя должен быть на ПК , Но в самом файле  манифеста. В строке <Assembly> Любой путь</Assembly> .  Т.е можно1 раз всем  раздать  текстовый файл с  нужным путем,  а dll файл можно  подменять.
Название: Re: Загрузка dll с серверной папки
Отправлено: enot от 21-12-2020, 09:36:57
Вы уверены ? Я прописывал путь к серверу (содержащий ip адрес) , вылезала ошибка
Название: Re: Загрузка dll с серверной папки
Отправлено: Olga от 21-12-2020, 14:25:41
У меня сетевой диск  Р и я прописываю таким образом например:
<Name>ParamInOsnova2.OneButton</Name>
   <Assembly>"P:\03_БИБЛИОТЕКА\Revit_5_ПСМ\Скрипты C#\КЖ\Связь параметров\Вариант2 с выбором группы модели\ParamInOsnova2.dll"</Assembly>
   <ClientId>debf0b23-86fc-4e8e-a7a4-53f106c73521</ClientId>
   <Description>"Кнопка по копированию значений из основы в арматуру"</Description>
   <FullClassName>ParamInOsnova.AppOneBut</FullClassName>
Все  срабатывает во всех скриптах. Про ip адрес я не могу сказать.