2010-07-03 2 views
3

За исключением запуска его на компьютере с версией .NET Framework версии 3.5, как проверить, какая версия имеет приложение .NET?Как проверить версию приложения .NET?

+2

Вы имеете в виду «как определить, какая версия .NET Framework предназначена для приложения?» –

ответ

2

Я не уверен, что понял ваш вопрос.

Если вы хотите, чтобы проверить, какая версия платформы .NET установлена ​​из приложения .NET, проверить это:

http://geekswithblogs.net/lorint/archive/2006/01/30/67654.aspx

+1

Он хочет знать, как вы определяете, какая версия .NET Framework создается или зависит от приложения. – Jason

+2

http://stackoverflow.com/questions/325918/how-to-find-out-which-version-of-net-framework-executable-needs-to-run then? – 2010-07-03 20:39:18

+0

Принято для связи Пьера. IL disasm поставляется с VS, и принятое решение достаточно просто использовать. – 2010-07-03 23:59:41

0

Насколько я знаю, это не представляется возможным из кода. DLL не предназначена для конкретной версии фреймворка, а работает под определенной CLR и использует определенные сборки.

Например, вы можете определить приложение 3.0, которое работает под версией CLR 2.0, и использует сборки, которые были выпущены при выпуске .NET 3.0. (Вам также необходимо проверить, не ссылается ли на какие-либо сборки, выпущенные при выпуске 3.5 или 4.0, хотя эти новые сборки могут ссылаться только на другие сборки, выпущенные с версией 2.0). #

Реалистично , единственный способ сделать это - иметь список из всех сборок, выпущенных с конкретной версией рамочной программы, и провести перекрестный контроль сборки под контролем с этим списком.

4

Управление версиями .NET Framework прошло foobar после .NET 2.0. Приложение предназначено для версии CLR, она делает это с помощью метаданных сборки для EXE. И в настоящее время их четыре, 1.0, 1.1, 2.0 и 4.0. Не считая специальных, например, Compact Framework, Silverlight, Micro Framework.

Рамочные версии 2.0, 2.0SP1, 2.0SP2, 3.0, 3.5 и 3.5SP1 все целевые версии CLR 2.0.50727. Разница между этими версиями заключается в том, что у них есть дополнительные сборки, доступные в более поздних версиях. Вид, поддерживающий такие функции, как WPF, WCF и LINQ. Они аддитивны, добавлено больше полезных добавок к чему-то, что уже было довольно солидным. Вам никогда не нужно угадывать, какую версию фреймворка требуется вашей программе, просто откройте узел «Ссылки» в окне «Обозреватель решений» и посмотрите номера версий сборки. Или установите свойство Target Framework в своем проекте и проделайте свой путь до тех пор, пока компилятор не перестанет жаловаться.

Назад к исходному вопросу: версия, которую вы даете своим собственным. NET приложение полностью зависит от вас. Отредактируйте атрибут [AssemblyVersion] в файле AssemblyInfo.cs.

1

Reflector расскажет вам, какая версия каркаса была построена с помощью. Откройте каждую сборку в Reflector, откройте «Ссылки» и проверьте версию, показанную для mscorlib и других системных сборок.

Если рефлектор может это сделать, он должен иметь возможность работать в коде, по крайней мере в принципе. Похоже, Reflector использует Cecil для проверки кода.

Смежные вопросы