Скрипт: << рекомендуется ознакомиться, особенно с DirRemove( ) моментами! >>
WinSetState( ) - лучше раскоментировать!
; Microsoft .NET Framework 2.0
RegRead("HKLM\Software\Microsoft\.NETFramework\Policy\v2.0", "")
If @error <> 1 Then Exit
BlockInput(1)
Run("dotnetfx.exe")
WinWait("Microsoft .NET Framework 2.0 Setup", "Welcome")
;WinSetState("Microsoft .NET Framework 2.0 Setup", "Welcome", @SW_MINIMIZE)
ControlClick("Microsoft .NET Framework 2.0 Setup", "Welcome", "Button12", "Left", 1, 37, 11)
ControlCommand("Microsoft .NET Framework 2.0 Setup", "End-User License Agreement", "Button11", "Check", "")
ControlClick("Microsoft .NET Framework 2.0 Setup", "End-User License Agreement", "Button8", "Left", 1, 37, 11)
WinWait("Microsoft .NET Framework 2.0 Setup", "Setup Complete")
ControlClick("Microsoft .NET Framework 2.0 Setup", "Setup Complete", "Button2", "Left", 1, 37, 11)
;Repaire
;WinWait("Microsoft .NET Framework 2.0 Setup", "Maintenance mode")
;WinSetState("Microsoft .NET Framework 2.0 Setup", "Maintenance mode", @SW_MINIMIZE)
;ControlCommand("Microsoft .NET Framework 2.0 Setup", "Maintenance mode", "Button9", "Check", "")
;ControlClick("Microsoft .NET Framework 2.0 Setup", "Maintenance mode", "Button7", "Left", 1, 37, 11)
;WinWait("Microsoft .NET Framework 2.0 Setup", "Setup Complete")
;ControlClick("Microsoft .NET Framework 2.0 Setup", "Setup Complete", "Button2", "Left", 1, 37, 11)
BlockInput(0)
DirRemove(@ProgramsCommonDir & "\Internet Explorer", 1)
DirRemove(@WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\Microsoft .NET Framework 2.0", 1)
DirRemove(@WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\MUI", 1)
DirRemove(@WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files", 1)
DirRemove(@WindowsDir & "\PCHealth", 1)
DirRemove(@SystemDir & "\MUI", 1)
Sleep(5000)
ShellExecute(@SystemDir & "\sc.exe", "Stop clr_optimization_v2.0.50727_32", @SystemDir, "", @SW_HIDE)
RegWrite("HKLM\System\ControlSet001\Enum\Root\LEGACY_CLR_OPTIMIZATION_V2.0.50727_32\0000\Control", "DisableCount", "REG_DWORD", "00000001")
RegWrite("HKLM\System\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\Enum\ROOT\LEGACY_CLR_OPTIMIZATION_V2.0.50727_32\0000", "CSConfigFlags", "REG_DWORD", "00000001")
RegWrite("HKLM\System\ControlSet001\Hardware Profiles\Current\System\CurrentControlSet\Enum\ROOT\LEGACY_CLR_OPTIMIZATION_V2.0.50727_32\0000", "CSConfigFlags", "REG_DWORD", "00000001")
RegWrite("HKLM\System\ControlSet001\Services\aspnet_state", "REG_DWORD", "Start", "00000004")
RegWrite("HKLM\System\ControlSet001\Services\clr_optimization_v2.0.50727_32", "REG_DWORD", "Start", "00000004")
RegWrite("HKLM\System\CurrentControlSet\Enum\Root\LEGACY_CLR_OPTIMIZATION_V2.0.50727_32\0000\Control", "DisableCount", "REG_DWORD", "00000001")
RegWrite("HKLM\System\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Enum\ROOT\LEGACY_CLR_OPTIMIZATION_V2.0.50727_32\0000", "CSConfigFlags", "REG_DWORD", "00000001")
RegWrite("HKLM\System\CurrentControlSet\Hardware Profiles\Current\System\CurrentControlSet\Enum\ROOT\LEGACY_CLR_OPTIMIZATION_V2.0.50727_32\0000", "CSConfigFlags", "REG_DWORD", "00000001")
RegWrite("HKLM\System\CurrentControlSet\Services\aspnet_state", "REG_DWORD", "Start", "00000004")
RegWrite("HKLM\System\CurrentControlSet\Services\clr_optimization_v2.0.50727_32", "REG_DWORD", "Start", "00000004")
FileDelete(@TempDir & "\dd_netfx*.txt")
FileDelete(@TempDir & "\ASPNETSetup_*.log")
Exit
NEW
code:
; Microsoft .NET Framework 2.0
RegRead("HKLM\Software\Microsoft\.NETFramework\Policy\v2.0", "")
If @error <> 1 Then Exit
ShellExecuteWait("dotnetfx.exe", "/q:a /c:""install.exe /qb!""", @ScriptDir)
Sleep(5000)
ShellExecute(@SystemDir & "\sc.exe", "Stop clr_optimization_v2.0.50727_32", @SystemDir, "", @SW_HIDE)
RegWrite("HKLM\System\ControlSet001\Enum\Root\LEGACY_CLR_OPTIMIZATION_V2.0.50727_32\0000\Control", "DisableCount", "REG_DWORD", "00000001")
RegWrite("HKLM\System\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\Enum\ROOT\LEGACY_CLR_OPTIMIZATION_V2.0.50727_32\0000", "CSConfigFlags", "REG_DWORD", "00000001")
RegWrite("HKLM\System\ControlSet001\Hardware Profiles\Current\System\CurrentControlSet\Enum\ROOT\LEGACY_CLR_OPTIMIZATION_V2.0.50727_32\0000", "CSConfigFlags", "REG_DWORD", "00000001")
RegWrite("HKLM\System\ControlSet001\Services\aspnet_state", "REG_DWORD", "Start", "00000004")
RegWrite("HKLM\System\ControlSet001\Services\clr_optimization_v2.0.50727_32", "REG_DWORD", "Start", "00000004")
RegWrite("HKLM\System\CurrentControlSet\Enum\Root\LEGACY_CLR_OPTIMIZATION_V2.0.50727_32\0000\Control", "DisableCount", "REG_DWORD", "00000001")
RegWrite("HKLM\System\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Enum\ROOT\LEGACY_CLR_OPTIMIZATION_V2.0.50727_32\0000", "CSConfigFlags", "REG_DWORD", "00000001")
RegWrite("HKLM\System\CurrentControlSet\Hardware Profiles\Current\System\CurrentControlSet\Enum\ROOT\LEGACY_CLR_OPTIMIZATION_V2.0.50727_32\0000", "CSConfigFlags", "REG_DWORD", "00000001")
RegWrite("HKLM\System\CurrentControlSet\Services\aspnet_state", "REG_DWORD", "Start", "00000004")
RegWrite("HKLM\System\CurrentControlSet\Services\clr_optimization_v2.0.50727_32", "REG_DWORD", "Start", "00000004")
DirRemove(@ProgramFilesDir & "\Internet Explorer", 1)
DirRemove(@WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\Microsoft .NET Framework 2.0", 1)
DirRemove(@WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\MUI", 1)
DirRemove(@WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files", 1)
DirRemove(@WindowsDir & "\PCHealth", 1)
DirRemove(@SystemDir & "\MUI", 1)
FileDelete(@TempDir & "\dd_netfx*.txt")
FileDelete(@TempDir & "\ASPNETSetup_*.log")
$file = FileOpen(@SystemDir & "\csc.cmd", 10)
FileWrite($file, "@if ""%1""=="""" " & @WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\csc.exe & goto nop" & @CRLF)
FileWrite($file, "@" & @WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\csc.exe ""%1"" %*" & @CRLF)
FileWrite($file, ":nop" & @CRLF)
FileClose($file)
$file = FileOpen(@SystemDir & "\ilasm.cmd", 10)
FileWrite($file, "@if ""%1""=="""" " & @WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\ilasm.exe & goto nop" & @CRLF)
FileWrite($file, "@" & @WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\ilasm.exe ""%1"" %*" & @CRLF)
FileWrite($file, ":nop" & @CRLF)
FileClose($file)
$file = FileOpen(@SystemDir & "\jsc.cmd", 10)
FileWrite($file, "@if ""%1""=="""" " & @WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\jsc.exe & goto nop" & @CRLF)
FileWrite($file, "@" & @WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\jsc.exe ""%1"" %*" & @CRLF)
FileWrite($file, ":nop" & @CRLF)
FileClose($file)
$file = FileOpen(@SystemDir & "\ngen.cmd", 10)
FileWrite($file, "@if ""%1""=="""" " & @WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\ngen.exe & goto nop" & @CRLF)
FileWrite($file, "@" & @WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\ngen.exe ""%1"" %*" & @CRLF)
FileWrite($file, ":nop" & @CRLF)
FileClose($file)
$file = FileOpen(@SystemDir & "\vbc.cmd", 10)
FileWrite($file, "@if ""%1""=="""" " & @WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\vbc.exe & goto nop" & @CRLF)
FileWrite($file, "@" & @WindowsDir & "\Microsoft.NET\Framework\v2.0.50727\vbc.exe ""%1"" %*" & @CRLF)
FileWrite($file, ":nop" & @CRLF)
FileClose($file)
Exit
Ключевой момент тут dotnetfx.exe /q:a /c:"install.exe /q"
а раньше я не знал этого =)
а батники, чтобы пользоваться кампиляторами не создавая при этом переменную %Path% - Гы! не знаю будет ли это работать, так как я в C# не разбираюсь абсолютно =)
http://unattended.org.ua/forum/net-framework-20