Создание будущего установщика.NET 3.5 SP1 для установки setup.exe и MSI-файла

Я потребовал.NET 3.5 SP1 а-ля Обновится ли проект установки VS2008 Net 3.5 SP1?, Это заставляет setup.exe проверить правильно.

Я также добавил условие запуска "SP1" в мой MSI, чтобы оно не позволяло пользователю установить мое приложение.NET 3.5SP1 через запуск MSI (и заменило [VSDNETMSG] в сообщении условия Framework с тем, который на самом деле упоминает SP1).

С точки зрения проверки будущего, это кажется неправильным. Я хочу, чтобы условие было:

(NETVer=3.5 AND Net35SPLevel=1) OR (NETVer=>3.5)

не

(NETVer=3.5 AND Net35SPLevel=1)

Есть ли способ сделать это? Проверка рамок не имеет свойства условия, позволяющего мне добавлять подусловие...

Да, я мог бы также не волноваться об этом, моя милая маленькая голова:P

Если один из экспертов по версиям MS там читает это, если вы собираетесь помещать материал, от которого зависит код, в SP, не могли бы вы сделать так, чтобы установщик смог проверить его на OOTB.

(Я действительно хотел бы, чтобы они придумали лучшую схему нумерации - мир и его собака могли видеть, что это может запутаться)

1 ответ

Ах, как указывалось в статье, на которую ссылается другой пост, на который я ссылался, вы могли бы использовать тот факт, что поиск в реестре, который не удался, приведет к пустой строке (тогда как #0 а также #1 получится, если 3.5 действительно установлен и использовать выражение:

(NET35SPLEVEL="") OR NOT (NET35SPLEVEL>>"0")

Это делает проверку дизъюнкцией, а не конъюнкцией [1]

Что решает проблему - проверка не провалится на 4.0 без SP.

Остается проблема, которая по-прежнему не распространяется на случай, когда установлено 4/4.1/4/5/5/6 и на машине есть неупакованный пакет 3.5... (так что я не принимаю мой ответ!)

[1] Не так ли, Адам!

Другие вопросы по тегам