Почему ссылки на сборки заблокированы? - PullRequest
0 голосов
/ 11 августа 2010

У меня 2 сборки.Assembly2 ссылается на Assembly1.Почему Assembly2 заблокирована?

Я думал, что вся сборка загружается в ОЗУ JIT-компилятором, не так ли?

Как работает механизм, когда вызывается ссылочная сборка?

Ответы [ 2 ]

3 голосов
/ 11 августа 2010

(да, вопрос мог бы быть лучше, все же ...)

Ссылочные сборки загружаются в процесс и, таким образом, блокируются.Вы можете обойти это с помощью теневого копирования или просто убедитесь, что закрыли все процессы, использующие ваши сборки, прежде чем пытаться их изменить.

1 голос
/ 11 августа 2010

Я столкнулся с ситуацией, когда писал .NET-компонент для использования в приложении VB6, когда я не мог развернуть мою перекомпилированную сборку .NET, когда редактор VB6 был открыт.Это действительно разочаровало меня, потому что я хотел иметь возможность быстро внести изменения, а затем показать их в моем редакторе VB6.Я получал сообщение об ошибке, что сборка была заблокирована другим процессом или потоком.

Позже я понял, что это имеет большой смысл.Если ссылающееся приложение (в моем случае, среда IDE VB6) полагает, что библиотека будет одинаковой при каждом использовании, она столкнется с серьезными проблемами, если dll изменится, пока приложение находится в памяти.

В моем случае закрытие среды IDE VB6, обновление библиотеки DLL и повторное открытие среды IDE VB6 работали просто отлично.Это было немного препятствием в моем рабочем процессе, но как только я понял, почему это происходит, я преодолел это.

...