Da Sie gesagt haben, Sie möchten wissen, ob es tatsächlich installiert ist, denke ich, der beste Weg (kurz laufender versionsspezifischer Code) ist, den beruhigend genannten Registrierungsschlüssel "Install" zu überprüfen. 0x1 bedeutet ja:
C:\>reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5"| findstr Install
Install REG_DWORD 0x1
InstallPath REG_SZ c:\WINNT\Microsoft.NET\Framework\v3.5\
Dies geschieht auch die official method "Microsoft empfohlen" zu sein.
WMI ist eine andere Möglichkeit, aber scheint nicht praktikabel (langsam? Dauert 2 min auf meiner C2D, SSD). Vielleicht klappt es besser auf dem Server:
C:\>wmic product where "Name like 'Microsoft .Net%'" get Name, Version
Name Version
Microsoft .NET Compact Framework 1.0 SP3 Developer 1.0.4292
Microsoft .NET Framework 3.0 Service Pack 2 3.2.30729
Microsoft .NET Framework 3.5 SP1 3.5.30729
Microsoft .NET Compact Framework 2.0 2.0.5238
Microsoft .NET Framework 4 Client Profile 4.0.30319
Microsoft .NET Framework 4 Multi-Targeting Pack 4.0.30319
Microsoft .NET Framework 2.0 Service Pack 2 2.2.30729
Microsoft .NET Framework 1.1 1.1.4322
Microsoft .NET Framework 4 Extended 4.0.30319
C:\>wmic product where "name like 'Microsoft .N%' and version='3.5.30729'" get name
Name
Microsoft .NET Framework 3.5 SP1
Anders als diese Ich denke, der einzige Weg zu 100% sicher zu sein, ist eigentlich eine einfache Konsolenanwendung führen Sie Ihre Framework-Version kompiliert Targeting. Persönlich halte ich das für unnötig und vertraue der Registry-Methode gut.
Schließlich können Sie eine Intranet-Test-Site einrichten, die von Ihrem Server erreichbar ist und den Benutzer-Agenten schnüffelt, um .NET-Versionen festzustellen. Aber das ist natürlich keine Batch-Datei-Lösung.Siehe auch doc here.
Danke für die Hilfe. Ich denke, die Überprüfung für das Verzeichnis wird gut funktionieren. Auch, danke für die Erinnerung über die Verwendung von% windir% –
Diese einfache Verzeichnisprüfung hält nicht mehr gut, um die Version zu erkennen. Es gibt kein v4.5-Verzeichnis für .NET Framework 4.5 -http: //stackoverflow.com/questions/12070518/where-is-the-net-framework-4-5-directory – mvark
Überprüfen Sie diesen MSDN-Artikel: [How to : Ermitteln Sie, welche .NET Framework-Versionen installiert sind (https://msdn.microsoft.com/en-us/library/hh925568 (v = vs.110) .aspx # net_d). Es erklärt, dass Sie sich nicht mehr nur auf das Verzeichnis verlassen können. Für Versionen> = 4.0 müssen Sie die Registrierung analysieren. – Matt