Очистить кэш .Net Reflection - PullRequest
       10

Очистить кэш .Net Reflection

1 голос
/ 16 февраля 2010

При выполнении динамической компиляции исходного кода C #, если нам случится попытаться выполнить скомпилированную целевую DLL (например, tmp901.tmp.dll), у которой отсутствует ссылка, например:

InnerException: не удалось загрузить файл или сборку '_O2_Scanner_MsCatNet, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = null' или одна из ее зависимостей.

Кажется, существует проблема, когда на протяжении этого процесса эта сборка никогда не будет решена, даже если файл будет скопирован в место, из которого выполняется целевая сборка (tmp901.tmp.dll). Кажется, существует проблема с кэшированием, которая не позволяет перепроверить существование dll.

Текущее решение - перезапустить хост-приложение .NET, которое не очень практично.

1 Ответ

0 голосов
/ 16 февраля 2010

После сбоя загрузки сборки, я думаю, вы все равно можете загрузить сборку вручную, используя Assembly.Load или Assembly.LoadFile . Это должно позволить вам принудительно загрузить сборку, даже если она однажды вышла из строя.

...