Как обнаружить, должен ли я установить VCRedist?

У вас есть два решения для этого:

  • Поместить смехотворно большое отрицательное число в качестве начального максимума, например, -10000000 (в любом случае не будет работать и уродливо) или -math.inf (будет работать в любом случае, но все еще безобразно)
  • Помещение первого элемента вашего списка в качестве начального максимума (data[0]) (будет работать в любом случае).

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

20
задан 2 revs 23 May 2017 в 10:30
поделиться

2 ответа

Вы можете воспользоваться рекомендуемым подходом для установки directx: всегда запускать распространяемый пакет. Поскольку он требуется, и вы уже отправляете его, запускать его не повредит, даже если он уже установлен.

8
ответ дан 30 November 2019 в 00:35
поделиться

похоже, что есть другое решение , предложенное Microsoft-Developer с использованием MsiQueryProductState API , увы, также опираясь на идентификаторы GUID.

Обновление : код был запущен вчера и, кажется, работает нормально. Вот что делается: проверяется последний из известных мне GUID и путь к тому, где он должен быть установлен. Если оба сбоя, он установлен. Кажется, это работает нормально.

Кроме того, он устанавливается с аргументами командной строки «/ qb», что означает «оставленный без присмотра, но не невидимый». См. этот другой пост в блоге об этих параметрах.

FWIW, GUID для Microsoft Visual C ++ 2008 / VC90 SP1 Вторично распространяемый - x86 9.0.30729

  • 64bit 30729.17: 8220EEFE-38CD-377E-8595-13398D740ACE
  • 32-битный 30729,17: $ WINDIR \ WinSxS \ x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729 *

6
ответ дан 30 November 2019 в 00:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: