Создание перспективного установщика .NET 3.5 SP1 для setup.exe И .MSI

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

Я также добавил в свой MSI условие запуска «SP1», чтобы он не позволял пользователю устанавливать мое приложение .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.

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


person Ruben Bartelink    schedule 21.01.2009    source источник


Ответы (1)


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

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

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

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

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

[1] Неправда, Адам!

person Ruben Bartelink    schedule 26.01.2009