Как удалить, переустановить и / или найти информацию об исправлениях для Visual Studio 2008? - PullRequest
0 голосов
/ 08 апреля 2009

Другой разработчик и я испытываем другое поведение в собственных исполняемых файлах C ++, созданных с помощью Microsoft Visual Studio 2008, версия 9.0.30729.1 SP на разных машинах.

Мы статически ссылаемся на Стандартную библиотеку, поэтому не думаем, что это проблема версии DLL. Мы исключили различия в исходном коде и настройках сборки.

Мы предположили, что, возможно, на наших отдельных машинах были установлены разные «исправления», которые либо влияют на генерацию кода, либо, возможно, имеют различия в реализациях стандартной библиотеки C ++.

Каждый из нас использовал [Помощь | О Microsoft Visual Studio | Скопировать информацию], чтобы получить информацию о версии, а затем распространил их. Конечно же, мы обнаружили несколько расхождений. У меня есть некоторые исправления, которых нет у моего коллеги. И у него есть пара, которая отсутствует в моей установке.

Вот пример записи исправления из информации о версии:

Исправление для Microsoft Visual Studio 2008 Professional Edition - ENU (KB953256) KB953256 Это исправление для Microsoft Visual Studio 2008 Professional Edition - ENU. Если позднее вы установите более новый пакет обновления, это исправление будет удалено автоматически. Для получения дополнительной информации посетите http://support.microsoft.com/kb/953256.

Как вы заметили, указанная ссылка не работает. Фактически, из четырех различий, которые мы обнаружили, все, кроме одного, имеют мертвые ссылки:

Кто-нибудь знает, как на самом деле найти больше информации об этих мистических исправлениях? Любой совет по этим конкретным? Если не считать каждой полной переустановки Visual Studio, есть ли у кого-нибудь советы о том, как можно синхронизировать наши отдельные установки, возможно, путем удаления и / или переустановки исправлений?

Ответы [ 2 ]

2 голосов
/ 08 апреля 2009

Основным виновником появления другого поведения в нативных приложениях C ++, вероятно, будет: KB958357

Это, кажется, более ранняя версия того, что сейчас KB962219. Подробности доступны в этой публикации в блоге команды Visual C ++: http://blogs.msdn.com/vcblog/archive/2008/12/17/vc9-sp1-hotfix-for-the-vector-function-ft-crash.aspx

Это исправление исправляет 5 ошибок:

  1. function :: swap () была прервана оптимизацией малого функтора в VC9 TR1 (Пакет возможностей). Это сломалось вектор> в VC9 SP1. «Сломанный» означает «компилирование, но сбой».

  2. vector> несоответствующим образом требуется, чтобы X имел конструктор по умолчанию. (Это конкретный пример общей ошибки: вектор>, вектор >> и т. д. были также затронуты.)

  3. vector> несоответствующим образом требуемые X и Y для есть конструкторы по умолчанию. (Это конкретный пример общей ошибки, см. выше.)

  4. vector> несоответствующим образом требуется, чтобы X имел значение по умолчанию конструктор.

  5. Случайные распределения были нарушены, вызывая бесконечные циклы и испуская фиктивные результаты.

Это выглядит как достаточные изменения, вызывающие различное поведение, но все зависит от вашего кода. Посмотрите, устраняет ли обнаруженная вами несоответствие установка последней версии этого исправления на каждом компьютере.

1 голос
/ 08 апреля 2009

Я не уверен, сколько это поможет, но вот информация для различных исправлений

  • 948484 - компоненты времени разработки Visual C ++ 2008 SP1 для x64
  • 953256 - Visual Studio Team Explorer с пакетом обновления 1
  • 958357 - после установки Visual Studio 2008 с пакетом обновления 1 (SP1) появится исправление для TR1

Исходя из деталей пакета обновления, похоже, что одним из следующих может быть различие между машинами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...