Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как узнать, под какую версию .NET Framework скомпилирована прога?

415
07 сентября 2006 года
SLA
274 / / 08.08.2003
Каким образом программа может узнать, под какую версию .NET Framework она скомпилирована?

Дело в том, что, например, если на компьютере установлена только .NET v2.0, то все проги, сделанные для v1.0, v1.1 и v2.0 будут выполняться в этой v2.0.

Как определить версию .NET, на которой ВЫПОЛНЯЕТСЯ программа -- знаю, а для которой СКОМПИЛИРОВАНА -- не знаю, и в сети ничего не нахожу, так как даже не предпологаю, в каком направлении копать, и по каким ключевым словам искать.
713
08 сентября 2006 года
Ap0k
360 / / 13.03.2006
ИМХО, есть один вариант, загрузить сборку, посмотреть на "прикрученные" сборки из состава Famework, а точнее на их версии и тау узнать версию платформы, т.е. 1 или 2 :-) других вариантов в голову не пришло...
273
08 сентября 2006 года
3A3-968M
1.2K / / 22.12.2005
Вот тебе исходник. Первым параметром в программу передаёшь название твоей сборки, а прога возвращает в какой версии .NET она написана:
Код:
[SIZE=2][COLOR=#0000ff][FONT=Courier New]using[/FONT][/COLOR][/SIZE][SIZE=2][FONT=Courier New] System;[/FONT]
[/SIZE][SIZE=2][COLOR=#0000ff][FONT=Courier New]using[/FONT][/COLOR][/SIZE][SIZE=2][FONT=Courier New] System.Collections.Generic;[/FONT]
[/SIZE][SIZE=2][COLOR=#0000ff][FONT=Courier New]using[/FONT][/COLOR][/SIZE][SIZE=2][FONT=Courier New] System.Text;[/FONT]
[/SIZE][SIZE=2][COLOR=#0000ff][FONT=Courier New]using[/FONT][/COLOR][/SIZE][SIZE=2][FONT=Courier New] System.Runtime.InteropServices;[/FONT]
[/SIZE][SIZE=2][COLOR=#0000ff][FONT=Courier New]using[/FONT][/COLOR][/SIZE][SIZE=2][FONT=Courier New] System.Reflection;[/FONT][/SIZE]
[SIZE=2]
[/SIZE][SIZE=2][COLOR=#0000ff][FONT=Courier New]namespace[/FONT][/COLOR][/SIZE][SIZE=2][FONT=Courier New] Sample[/FONT]
[FONT=Courier New]{[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff] class [/COLOR][/SIZE][SIZE=2][COLOR=#008080]Program
[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New] {[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]   static [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]void[/COLOR][/SIZE][SIZE=2] Main([/SIZE][SIZE=2][COLOR=#0000ff]string[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New][] args)[/FONT]
[FONT=Courier New]   {[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#008080]     Assembly[/COLOR][/SIZE][SIZE=2] yourAsm = [/SIZE][SIZE=2][COLOR=#008080]Assembly[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New].ReflectionOnlyLoadFrom(args[0]);[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#008080]     AssemblyName[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New][] assemblies = yourAsm.GetReferencedAssemblies();[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]     foreach[/COLOR][/SIZE][SIZE=2] ([/SIZE][SIZE=2][COLOR=#008080]AssemblyName[/COLOR][/SIZE][SIZE=2] refAsm [/SIZE][SIZE=2][COLOR=#0000ff]in[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New] assemblies)[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]     if[/COLOR][/SIZE][SIZE=2] (refAsm.Name == [/SIZE][SIZE=2][COLOR=#800000]"mscorlib"[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New])[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#008080]        Console[/COLOR][/SIZE][SIZE=2].WriteLine([/SIZE][SIZE=2][COLOR=#008080]String[/COLOR][/SIZE][SIZE=2].Format([/SIZE][SIZE=2][COLOR=#800000]"Используемая версия Microsoft .NET: {0}"[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New], refAsm.Version));[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#008080]     Console[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New].ReadKey();[/FONT]
[FONT=Courier New]   }[/FONT]
[FONT=Courier New] }[/FONT]
[FONT=Courier New]}[/FONT]
[/SIZE]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог