Атрибуты [AssemblyVersion] и [AssemblyFileVersion] играют разные роли. [AssemblyVersion] видна только управляемому коду и важна для ПКК. Всякий раз, когда вы нарушаете общедоступный интерфейс сборки, вы должны поднять это число.
Компилятор внедряет неуправляемый ресурс в сборку с параметром командной строки/win32res. Это включает в себя VERSIONINFO resource, читаемый всем неуправляемым кодом, включая оболочку. Он определяет, что вы видите, когда вы щелкаете правой кнопкой мыши сборку в Проводнике и смотрите страницу свойств. Показанное в нем значение «File version» устанавливается атрибутом [AssemblyFileVersion]. Значение [AssemblyVersion] там не видно, Explorer (пока) не знает, как это прочитать.
Это зависит от вас, чтобы решить, как использовать этот атрибут. Крушение указывает на то, что в коде развертывания происходит некоторая минимальная проверка работоспособности, никогда не пыталась понять, что произойдет. Поэтому сделать их одинаковыми, однако, имеет большой смысл.
Microsoft использует [AssemblyFileVersion] другим способом, они автоматически увеличивают его для каждой сборки и гвоздя [AssemblyVersion]. Это хорошая идея и стратегия, которую я использую. Однако, как ни парадоксально, функция автоматического увеличения скорости работает точно в обратном направлении, она может только автоматически увеличивать [AssemblyVersion]. Вздох.
Можете ли вы опубликовать полную информацию о вашей трассе исключения/стека и т. Д.? –
Я смог решить проблему, увеличив сборку и версию файла. Перед сбоем я установил его в значение 1.0.0.4, а затем вернул его в 1.0.0.0. Это вызвало сбой, но я изменил его на 1.0.0.5, и теперь он работает. В чем же необходимость этих двух чисел? –