Фон:
Меня обвинили в попытке придумать новый способ сравнения dll и exe, которые используют AssemblyInfo для встраивания номера версии. Каждый раз, когда мы делаем новую сборку, версия соответственно увеличивается. Однако, когда приходит время для развертывания новой версии, мы хотим копировать только те dll и exe, которые действительно изменились, но встроенный номер версии создает впечатление, что это всегда так.
Чтобы обойти это, система в настоящее время просто полагалась на сравнение размера файла, но моя задача возникла из-за того, что я заметил, что это недостаточно хорошо, поскольку нам не удалось развернуть новый exe, несмотря на то, что он изменился; они просто имеют одинаковый размер файла. Мы не знаем, как часто это происходит, поэтому нам нужно что-то с этим делать, но, если возможно, мы хотели бы по-прежнему разумно заменять библиотеки dll и исполняемые файлы, чтобы пользователям не приходилось каждый раз закрывать пользовательский интерфейс. нам действительно нужно только заменить файлы, которые пользовательский интерфейс не использует.
Поэтому мой вопрос заключается в том, есть ли умный способ сравнить исполняемые файлы и DLL со встроенными версиями с использованием AssemblyInfo, игнорируя при этом сами эти метаданные. Чем больше я оглядывался, тем больше казалось, что это, вероятно, невозможно, но я подумал, что стоит спросить, прежде чем сдаваться и каждый раз переходить на замену всего.
Цените помощь!
Редактировать: я полагаю, что одна вещь, на которую я действительно надеялся, будет возможной, это побитовое сравнение с определенными смещениями. Всегда ли AssemblyInfo компилируется в определенный момент, например, в качестве верхнего или нижнего колонтитула, которые можно учитывать при сравнении?