Це питання пов'язане не стільки з програмуванням, скільки з пов'язаним з розгортанням.
Мені здається, що я багато спілкуюся з групою в моїй компанії, завданням якої є підтримка наших виробничих серверів Windows та розгортання на них коду. З юридичних причин та дотримання вимог я не маю прямої видимості чи контролю над серверами, тому єдиний спосіб я можу визначити, яку версію (-ів) .NET встановлено на будь-якому з них - через вказівки, які я даю цій групі.
Поки всі методи, які я можу придумати, щоб сказати, яка версія (-и) встановлена (перевірте, чи є утиліти Адміністративні засоби, що відповідають 1.1 або 2.0, перевірте записи в списку "Додати / видалити програми", перевірте наявність існування каталоги в розділі c: \ Windows \ Microsoft.NET) є помилковими (я бачив принаймні одну машину з версією 2.0, але не вводив 2.0 в розділі Адміністративні інструменти - і цей метод нічого не говорить про 3.0+, список "Додати / видалити програми" може вийти із синхронізації з реальністю, а існування каталогів не обов'язково нічого означає).
Зважаючи на те, що я, як правило, повинен знати, що ці речі знаходяться заздалегідь (виявивши, що "ой, ця версія не має всіх потрібних вам версій та пакетів обслуговування" не дуже добре працює з короткими вікнами технічного обслуговування), і я повинен зробіть перевірку "через проксі", оскільки я не можу потрапити безпосередньо на сервери, який безглуздий спосіб сказати, які версії (-ів) .NET встановлені на виробництві Windows Server? Переважно якийсь внутрішній спосіб зробити це, використовуючи те, що встановлюється фреймворк, оскільки це буде швидше і не потрібна якась утиліта для завантаження, а також метод, який точно не вдасться, якщо рамки не встановлені належним чином, але все-таки є файли на місці (тобто , там є каталог і gacutil.exe зазначається там, але ця версія фреймворку насправді не "встановлена")
РЕДАКТУВАННЯ: За відсутності хорошого непростого внутрішнього способу зробити це вбудованим у Рамки (рамки), хтось знає про хорошу, легку програму, яка не потрібна для встановлення, яка може це дізнатись? Я можу уявити, що хтось міг би легко написати його, але якщо такий вже існує, це було б навіть краще.