Этот вопрос связан не столько с программированием, сколько с развертыванием.
Я часто разговариваю с группой в моей компании, чья работа заключается в том, чтобы поддерживать наши рабочие серверы Windows и развертывать на них наш код. По юридическим причинам и причинам соответствия, я не имею прямой видимости или какого-либо контроля над серверами, поэтому единственный способ узнать, какие версии .NET установлены на любой из них, - это указания, которые я даю этой группе.
Пока что все способы, которые я могу придумать, чтобы сказать, какая версия (версии) установлены (проверьте, соответствуют ли средства администрирования, соответствующие 1.1 или 2.0, проверьте записи в списке «Установка и удаление программ», проверьте наличие наличие каталогов в c: \ Windows \ Microsoft.NET) имеет недостатки (я видел по крайней мере одну машину с 2.0, но без записей 2.0 в административных инструментах - и этот метод ничего не говорит о 3.0+, «Добавить / Удалить» Список программ может не совпадать с реальностью, и наличие каталогов не обязательно означает что-либо).
Учитывая то, что мне, как правило, нужно знать, что все это уже готово (обнаружение, что "к сожалению, у этого нет всех необходимых вам версий и пакетов обновления", не очень хорошо работает с короткими окнами обслуживания) и Я должен выполнить проверку «по доверенности», так как я не могу получить доступ к серверам напрямую, какой надежный способ определить, какая версия (версии) .NET установлена на производственном Windows Server? Желательно какой-то встроенный способ сделать это, используя то, что устанавливает фреймворк, так как это будет быстрее и не потребует какой-либо утилиты для загрузки, а также метод, который определенно потерпит неудачу, если фреймворки не установлены должным образом, но все еще имеют файлы (например есть каталог, в который вставлен gacutil.exe, но эта версия фреймворка на самом деле не "установлена")
РЕДАКТИРОВАТЬ: В отсутствие хорошего надежного встроенного способа сделать это встроенным в Framework (s), кто-нибудь знает хорошую, легкую, не требующую установки программу, которая может найти это из? Я могу представить, что кто-то мог бы легко написать один, но если бы он уже существовал, это было бы еще лучше.