Как я могу узнать, установлен ли.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 для поиска таких изменений, а затем снова использовать отражение для проверки изменений.
С другой стороны, я не уверен, могут ли какие-то ограничения безопасности помешать вам размышлять.