Как я могу узнать, установлен ли.NET 4.02?

Я задал этот вопрос вчера - он был закрыт как "точный дубликат" некоторыми людьми, которые не удосужились почитать вопросы / комментарии внимательно! Итак, еще одна попытка - может быть, у него будет время получить рабочий ответ, прежде чем его снова закроют по какой-то бессмысленной причине.

Microsoft недавно выпустила "обновление" для.NET Framework. К сожалению, я не знаю способа узнать, какая версия установлена. Framework-версия остается на 4.0.30319.239,

Спасибо за некоторое оживление;-)

PS: если для параметра supportRuntime в app.config установлено значение Version=4.0.2, то при запуске приложение сообщает, что 4.0.2 не установлен (в кратчайшие сроки, поэтому должно быть место, где можно найти "настоящую" версию).

3 ответа

Решение

Посмотри на:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs

Если вы установили 4.0.2, то существуют следующие дополнительные узлы:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.1,Profile=Client
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.2
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.0.2,Profile=Client

Это не должно иметь значения. Вы не нацеливаетесь на определенные номера сборки платформы, вы нацеливаетесь на номер выпуска, который в этом случае равен 4.0. Что вы делаете, когда вам нужно знать точный номер сборки?

WTF - зачем использовать buildcounters?!

Почему бы тебе? Он подробно описывает точную версию фреймворка. Как правило, вы не выпускаете программное обеспечение с циклом "это версия 1.0.0.0", потому что это может вызвать хаос с контролем версий для обновлений / исправлений и т. Д.

Достаточно просто нацелиться на.NET 4.0.

Давайте попробуем:

Если вы знаете специальную функцию / метод внутри класса, который присутствует только в.NET 4.02, но отсутствует в.NET 4.0, я бы использовал отражение, например, чтобы получить список всех методов класса или сигнатуру конкретного метода.

Если есть только внутренние изменения (методы / свойства), вы можете использовать ILSpy для поиска таких изменений, а затем снова использовать отражение для проверки изменений.

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

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