Файл блокируется, когда я получаю версию сборки

#c# #file #assemblies #assemblyversions

#c# #файл #сборки #assemblyversions

Вопрос:

У меня есть программа обновления для моего приложения. Когда я проверяю наличие обновлений, я сравниваю версию сервера с версией локальной сборки основного EXE-файла приложения. Когда из программы обновления (программа обновления — это другой EXE-файл) я получаю версию сборки моего основного EXE-файла приложения, этот файл блокируется.. Как я могу получить версию сборки моего проекта без блокировки для перезаписи? Хранить версию сборки в XML-файле — плохая идея. Спасибо

Комментарии:

1. Вы нашли решение?

Ответ №1:

Вам просто нужно AssemblyName, чтобы получить версию :

 AssemblyName.GetAssemblyName(filename);
  

Ответ №2:

Быстрым (и грязным) способом было бы скопировать основной exe-файл во временный файл и загрузить его оттуда.

Более элегантным решением было бы создать отдельный домен приложения и загрузить туда основной exe-файл. Поскольку вам нужна только версия, должно быть довольно просто получить данные по мосту между доменами приложений. Домен приложения может быть выгружен, как только у вас будет версия.

Я предполагаю, что вы загружаете сборку, чтобы проверить версию.