Is there a command line command for verifying what version of .NET is installed

前端 未结 9 836
孤街浪徒
孤街浪徒 2020-12-07 16:44

I have set of scripts for doing scripted installs. You can use the scripts on any server 2008 machine. However, I need to check if .NET 3.5 has been installed (before the

相关标签:
9条回答
  • 2020-12-07 16:51

    If you're going to run a little console app, you may as well install clrver.exe from the .NET SDK. I don't think you can get cleaner than that. This isn't my answer (but I happen to agree), I found it here.

    0 讨论(0)
  • 2020-12-07 16:56

    REM Search for the CONFIG file, if this doesn't exit then the user doesn't have the .Net framework 2.0 `

    SET FileName=%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG
    IF EXIST %FileName% GOTO INSTALL_DIALER
    ECHO.You currently do not have the Microsoft(c) .NET Framework 2.0 installed.
    
    0 讨论(0)
  • 2020-12-07 17:01

    Unfortunately the best way would be to check for that directory. I am not sure what you mean but "actually installed" as .NET 3.5 uses the same CLR as .NET 3.0 and .NET 2.0 so all new functionality is wrapped up in new assemblies that live in that directory. Basically, if the directory is there then 3.5 is installed.

    Only thing I would add is to find the dir this way for maximum flexibility:

    %windir%\Microsoft.NET\Framework\v3.5
    
    0 讨论(0)
  • 2020-12-07 17:01

    you can check installed c# compilers and the printed version of the .net:

    @echo off
    
    for /r "%SystemRoot%\Microsoft.NET\Framework\" %%# in ("*csc.exe") do (
        set "l="
        for /f "skip=1 tokens=2 delims=k" %%$ in ('"%%# #"') do (
            if not defined l (
                echo Installed: %%$
                set l=%%$
            )
        )
    )
    
    echo latest installed .NET %l%
    

    the csc.exe does not have a -version switch but it prints the .net version in its logo. You can also try with msbuild.exe but .net framework 1.* does not have msbuild.

    0 讨论(0)
  • 2020-12-07 17:03

    you can have a look to this page for .NET 4 : http://www.itninja.com/question/batch-script-to-check-and-install-dotnet4-0

    0 讨论(0)
  • 2020-12-07 17:04

    Since you said you want to know if its actually installed, I think the best way (short of running version specific code), is to check the reassuringly named "Install" registry key. 0x1 means yes:

    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\
    

    This also happens to be the "Microsoft Recommended" official method.

    WMI is another possibility, but seems impractical (Slow? Takes 2 min on my C2D, SSD). Maybe it works better on your 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
    

    Other than these I think the only way to be 100% sure is to actually run a simple console app compiled targeting your framework version. Personally, I consider this unnecessary and trust the registry method just fine.

    Finally, you could set up an intranet test site which is reachable from your server and sniffs the User Agent to determine .NET versions. But that's not a batch file solution of course. Also see doc here.

    0 讨论(0)
提交回复
热议问题