2013-02-13 4 views
0

Во время установки нашего продукта нам нужно знать, сколько ядер имеет процессор. У Wix есть эта возможность ?.WIX - Определение количества ядер при установке

+0

Из любопытства, почему, черт возьми, вам нужно знать об этом во время установки? Во время выполнения, чтобы создать разумное количество потоков, конечно, но во время установки ?! – delnan

+0

Возможно, существует требование только разрешить установку, если определенное количество ядер? Сомнительно, согласен. –

ответ

1

В Windows Installer или WiX нет ничего, чтобы поддерживать это. Установщик Windows имеет набор свойств оборудования, таких как Intel, Intel64 (Itanium) и Msix64 (AMD/Intel), но ничего для подсчета ядра.

Чтобы получить информацию и установить свойство, которое будет использоваться позже в вашем установщике, вам потребуется настраиваемое действие (обычно C++ или C#). Точные данные зависят от выбранного вами языка.

+0

Хорошо, спасибо Кристофер. Мы будем использовать c или, надеюсь, встроенный vbscript, чтобы получить его. Для тех, кому интересно, нам нужно количество ядер, поскольку мы устанавливаем ОС реального времени под названием RTX вместе с окнами. Нам нужно явно указать RTX, сколько ядер посвящено ему. Стив. – user2069362

+0

Я специально не упоминал VBScript, потому что хост ActiveScript в установщике Windows очень хрупок. Лучше избегать. –

+0

Кристофер, спасибо за ваши советы. Так что скажем, я пишу небольшой C++ .exe, чтобы вернуть число ядер. Как мне вернуть этот номер в wix ?, предполагая, что мой .exe называется CustomAction. Спасибо Steve – user2069362

0

Возможное нестандартное решение: есть ключи реестра HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0, HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\1 и т. Д., По одному для каждого из ядер.

Если вы хотите, например, что-то, чтобы иметь по крайней мере четыре ядра, установите свойство MSI через поиск в регистре для одного из значений в ключе ...\CentralProcessor\3 (значение реестра по умолчанию обычно пустое, поэтому используйте один других значений, таких как Identifier).

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