Сообщество программистов Autodesk в СНГ
ADN Club => Revit API => Тема начата: enot от 14-12-2020, 22:45:57
-
если dll приложения лежит не на локальном диске , а на сервере в папке (там путь как ip задан или вроде того), то возможно ли как то его оттуда подгрузить ?
В файле манифеста обычно путь прописывается как локальный путь (папка с dll на нашем пк находится) ...
-
enot,
Скопируй на локальный диск и грузи с него - не будет таких проблем.
-
ну если скопировать , то конечно не будет ;D цель как раз от этого уйти
Дело в том что к dll на сервере должны обращаться множество пк
-
ну если скопировать , то конечно не будет ;D цель как раз от этого уйти
Дело в том что к dll на сервере должны обращаться множество пк
Это плохо. Пока они обращаются к этому файлу - он заблокирован системой и заменить его обновленной версией ты не можешь. Поэтому я и предпочитаю другую схему. На локальном диске dll-загрузчик, который с сервера копирует на локальный диск другой dll-файл и загружает его. В твоей схеме может быть масса подводных камней. Вплоть до того, что политиками запрещена загрузка по сети.
-
Пока они обращаются к этому файлу - он заблокирован системой и заменить его обновленной версией ты не можешь.
Вот тут хочу вставить вопрос - допустим по моей схеме происходит множественное обращение к этому файлу - при этом не должно быть проблем ? (так как файл в режиме чтения , а не редактирования)? Иными словами к одному файлу могут обращаться одновременно любое количество пользователей ?
-
enot,
В этом плане проблем быть не должно если не установлены ограничения на сервере на количество одновременных обращений к файлу.
-
Спасибо.
А если один из пользователей начал редактирование , то смогут ли остальные читать файл в этот момент ? или пока кто то читает файл , то его в принципе уже и редактировать нельзя...
-
А если один из пользователей начал редактирование
Редактирование чего?
-
содержимого dll, или пример не dll а содержимое txt файла вместо него
-
содержимого dll, или пример не dll а содержимое txt файла вместо него
Хотел бы я посмотреть на пользователя, который будет редактировать dll-файл. А причем здесь txt-файл? Что-то у тебя всё в одну кучу.
-
Что-то у тебя всё в одну кучу.
да есть такое..
dll обращается в свою очередь к txt файлу.
Но давайте забудем про dll , пусть вместо него txt на сервере
-
А по поводу
если dll приложения лежит не на локальном диске , а на сервере в папке (там путь как ip задан или вроде того), то возможно ли как то его оттуда подгрузить ?
В файле манифеста обычно путь прописывается как локальный путь (папка с dll на нашем пк находится) ...
Хотелось бы услышать мнение Александра Игнатовича, я его тут вижу
Мне конечно кажется что это вряд ли возможно. но все же
-
У нас этот вопрос решен таким образом: есть папка с файлом dll на сервере (1), к которой все обращаются. Есть еще одна папка (2)в которую кладем обновленный dll и ночью, когда все пользователи из Revit вышли( если не вышли то есть скрипт который это проверяет и принудительно выбрасывает из Revit), происходит копирование из папки 2 в папку 1.
-
А как у вас организовано обращение и чтение этого dll файла на сервере Ревитом? В файле манифеста можно прописать стандартный путь , начало которого должно иметь вид c:/programdata... (здесь нет варианта прописать путь к серверу)
-
Файл манифеста действительно должен быть только в C:\ProgramData.. И он у каждого пользователя должен быть на ПК , Но в самом файле манифеста. В строке <Assembly> Любой путь</Assembly> . Т.е можно1 раз всем раздать текстовый файл с нужным путем, а dll файл можно подменять.
-
Вы уверены ? Я прописывал путь к серверу (содержащий ip адрес) , вылезала ошибка
-
У меня сетевой диск Р и я прописываю таким образом например:
<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 адрес я не могу сказать.