[1146] | 1 | @echo off
|
---|
| 2 | rem Run a program under a particular version of the .Net framework
|
---|
| 3 | rem by setting the COMPLUS_Version environment variable.
|
---|
| 4 | rem
|
---|
| 5 | rem This command was written by Charlie Poole for the NUnit project.
|
---|
| 6 | rem You may use it separately from NUnit at your own risk.
|
---|
| 7 |
|
---|
| 8 | if "%1"=="/?" goto help
|
---|
| 9 | if "%1"=="?" goto help
|
---|
| 10 | if "%1"=="" goto GetVersion
|
---|
| 11 | if /I "%1"=="off" goto RemoveVersion
|
---|
| 12 | if "%2"=="" goto SetVersion
|
---|
| 13 | goto main
|
---|
| 14 |
|
---|
| 15 | :help
|
---|
| 16 | echo Control the version of the .Net framework that is used. The
|
---|
| 17 | echo command has several forms:
|
---|
| 18 | echo.
|
---|
| 19 | echo CLR
|
---|
| 20 | echo Reports the version of the CLR that has been set
|
---|
| 21 | echo.
|
---|
| 22 | echo CLR version
|
---|
| 23 | echo Sets the local shell environment to use a specific
|
---|
| 24 | echo version of the CLR for subsequent commands.
|
---|
| 25 | echo.
|
---|
| 26 | echo CLR version command [arguments]
|
---|
| 27 | echo Executes a single command using the specified CLR version.
|
---|
| 28 | echo.
|
---|
| 29 | echo CLR off
|
---|
| 30 | echo Turns off specific version selection for commands
|
---|
| 31 | echo.
|
---|
| 32 | echo The CLR version may be specified as vn.n.n or n.n.n. In addition,
|
---|
| 33 | echo the following shortcuts are recognized:
|
---|
| 34 | echo net-1.0, 1.0 For version 1.0.3705
|
---|
| 35 | echo net-1.1, 1.1 For version 1.1.4322
|
---|
| 36 | echo beta2 For version 2.0.50215
|
---|
| 37 | echo net-2.0, 2.0 For version 2.0.50727
|
---|
| 38 | echo.
|
---|
| 39 | echo NOTE:
|
---|
| 40 | echo Any specific settings for required or supported runtime in
|
---|
| 41 | echo the ^<startup^> section of a program's config file will
|
---|
| 42 | echo override the version specified by this command, and the
|
---|
| 43 | echo command will have no effect.
|
---|
| 44 | echo.
|
---|
| 45 | goto done
|
---|
| 46 |
|
---|
| 47 | :main
|
---|
| 48 |
|
---|
| 49 | setlocal
|
---|
| 50 | set CMD=
|
---|
| 51 | call :SetVersion %1
|
---|
| 52 | shift /1
|
---|
| 53 |
|
---|
| 54 | :loop 'Copy remaining arguments to form the command
|
---|
| 55 | if "%1"=="" goto run
|
---|
| 56 | set CMD=%CMD% %1
|
---|
| 57 | shift /1
|
---|
| 58 | goto :loop
|
---|
| 59 |
|
---|
| 60 | :run 'Execute the command
|
---|
| 61 | %CMD%
|
---|
| 62 | endlocal
|
---|
| 63 | goto done
|
---|
| 64 |
|
---|
| 65 | :SetVersion
|
---|
| 66 | set COMPLUS_Version=%1
|
---|
| 67 |
|
---|
| 68 | rem Substitute proper format for certain names
|
---|
| 69 | if /I "%COMPLUS_Version:~0,1%"=="v" goto useit
|
---|
| 70 | if /I "%COMPLUS_Version%"=="net-1.0" set COMPLUS_Version=v1.0.3705&goto report
|
---|
| 71 | if /I "%COMPLUS_Version%"=="1.0" set COMPLUS_Version=v1.0.3705&goto report
|
---|
| 72 | if /I "%COMPLUS_Version%"=="net-1.1" set COMPLUS_Version=v1.1.4322&goto report
|
---|
| 73 | if /I "%COMPLUS_Version%"=="1.1" set COMPLUS_Version=v1.1.4322&goto report
|
---|
| 74 | if /I "%COMPLUS_Version%"=="beta2" set COMPLUS_Version=v2.0.50215&goto report
|
---|
| 75 | if /I "%COMPLUS_Version%"=="net-2.0" set COMPLUS_Version=v2.0.50727&goto report
|
---|
| 76 | if /I "%COMPLUS_Version%"=="2.0" set COMPLUS_Version=v2.0.50727&goto report
|
---|
| 77 |
|
---|
| 78 | rem Add additional substitutions here, branching to report
|
---|
| 79 |
|
---|
| 80 | rem assume it's a version number without 'v'
|
---|
| 81 | set COMPLUS_Version=v%COMPLUS_Version%
|
---|
| 82 |
|
---|
| 83 | :report
|
---|
| 84 | echo Setting CLR version to %COMPLUS_Version%
|
---|
| 85 | goto done
|
---|
| 86 |
|
---|
| 87 | :GetVersion
|
---|
| 88 | if "%COMPLUS_Version%"=="" echo CLR version is not set
|
---|
| 89 | if NOT "%COMPLUS_Version%"=="" echo CLR version is set to %COMPLUS_Version%
|
---|
| 90 | goto done
|
---|
| 91 |
|
---|
| 92 | :RemoveVersion
|
---|
| 93 | set COMPLUS_Version=
|
---|
| 94 | echo CLR version is no longer set
|
---|
| 95 |
|
---|
| 96 | :done
|
---|