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
|
---|