Cette question n'est pas tant liée à la programmation qu'au déploiement.
Je me retrouve beaucoup à converser avec le groupe de mon entreprise dont le travail est de maintenir nos serveurs Windows de production et d'y déployer notre code. Pour des raisons juridiques et de conformité, je n'ai pas de visibilité directe ni de contrôle sur les serveurs, donc la seule façon de savoir quelle (s) version (s) de .NET sont installées sur l'une d'entre elles est de suivre les instructions que je donne à ce groupe.
Jusqu'à présent, toutes les méthodes auxquelles je peux penser pour savoir quelle (s) version (s) sont installées (vérifiez les outils d'administration correspondant à 1.1 ou 2.0, vérifiez les entrées dans la liste "Ajout / Suppression de programmes", vérifiez l'existence du répertoires sous c: \ Windows \ Microsoft.NET) sont défectueux (j'ai vu au moins une machine avec 2.0 mais pas d'entrées 2.0 sous Outils d'administration - et cette méthode ne vous dit rien sur 3.0+, la liste "Ajout / Suppression de programmes" peut se désynchroniser avec la réalité, et l'existence des répertoires ne veut pas forcément dire quoi que ce soit).
Étant donné que j'ai généralement besoin de savoir que ces éléments sont en place à l'avance (découvrir que "oups, celui-ci n'a pas toutes les versions et tous les service packs dont vous avez besoin" ne fonctionne pas vraiment bien avec de courtes fenêtres de maintenance) et je dois faire la vérification "par proxy" puisque je ne peux pas accéder directement aux serveurs, quel est le moyen infaillible de savoir quelle (s) version (s) de .NET sont installées sur un serveur Windows de production? De préférence, une manière intrinsèque de le faire en utilisant ce que le framework installe car il sera plus rapide et ne nécessitera pas une sorte d'utilitaire pour être chargé et aussi une méthode qui échouera définitivement si les frameworks ne sont pas correctement installés mais ont toujours des fichiers en place (c.-à-d. , il y a un répertoire et gacutil.exe y est inscrit mais cette version du framework n'est pas vraiment "installée")
EDIT: En l'absence d'un bon moyen intrinsèque infaillible de le faire intégré dans le (s) Framework (s), est-ce que quelqu'un connaît un bon programme léger et sans installation qui peut le découvrir? J'imagine que quelqu'un pourrait facilement en écrire un mais s'il en existe déjà un, ce serait encore mieux.