освободить дескриптор файла Assembly.LoadFrom - PullRequest
4 голосов
/ 19 июля 2010

Я пытаюсь получить сборочную версию exe в C # со следующим кодом

Assembly asm = Assembly.LoadFrom(address);
return asm.GetName().Version;

работает отлично, но если я пытаюсь удалить exe-файл после того, как использую эту функцию, он говорит: «Доступ запрещен», поскольку exe-файл используется другим процессом!

есть ли вызов Dispose или что-то, что освобождает дескриптор файла или любое другое решение?

Ответы [ 2 ]

3 голосов
/ 19 июля 2010

Нет способа выгрузить сборку, кроме выгрузки домена приложения. См. Как загрузить и выгрузить сборки :

Нет способа выгрузить индивидуальная сборка без разгрузки все домены приложений, которые содержать его. Используйте метод Unload из AppDomain для выгрузки приложения домены. Для получения дополнительной информации см. Выгрузка домена приложения.

Если вы просто хотите получить версию файла, попробуйте использовать FileVersionInfo.GetVersionInfo .

2 голосов
/ 19 июля 2010
...