JIT-компилятор разберется со всем этим, а также с источником сообщения об ошибке, если изменение было нарушено.
Однако вы играете в очень опасную игру под названием DLL Hell. Проблема не в том, что они не перекомпилируют свой код, а в том, что они делают . Они будут, в конце концов. Если в этом есть небольшая ошибка, кто-то запустил старую версию вашего установщика, скопировал не тот файл и т. Д., И тогда весь ад провалился. Код не запустится, и у них будет невозможное задание, выясняющее почему. Это произойдет еще долго после того, как вы внесли изменения, у вас не будет возможности угадать, что пошло не так, и вы не сможете им помочь.
Не связывайтесь с этим, поднимите [AssemblyFileVersion] и [AssemblyVersion]. Да, им придется перекомпилировать, когда вы измените последний. Или используйте <bindingRedirect>
, что тоже хорошо, теперь есть отслеживаемая запись об этом.
Кстати: это произошло и в .NET Framework. WaitHandle.WaitOne (int) был добавлен в пакет обновления, но без изменения [AssemblyVersion]. Программисты ориентировались на .NET 2.0, но их код не запускался, когда на целевой машине была установлена оригинальная версия 2.0. Очень болезненно.