зеркало из https://github.com/dotnet/fsharp.git
Remove compiler code accessing GACUtil
This commit is contained in:
Родитель
29f1952515
Коммит
b584ee7204
|
@ -131,7 +131,7 @@ Restart Visual Studio, it should now be running your freshly-built Visual F# IDE
|
||||||
|
|
||||||
### Notes on the build
|
### Notes on the build
|
||||||
|
|
||||||
1. The `update.cmd` script adds the built `FSharp.Core` to the GAC, adds required strong name validation skips, and NGens the compiler and libraries. This requires admin privileges.
|
1. The `update.cmd` script adds required strong name validation skips, and NGens the compiler and libraries. This requires admin privileges.
|
||||||
1. The compiler binaries produced are "private" and strong-named signed with a test key.
|
1. The compiler binaries produced are "private" and strong-named signed with a test key.
|
||||||
1. Some additional tools are required to build the compiler, notably `fslex.exe`, `fsyacc.exe`, `FSharp.PowerPack.Build.Tasks.dll`, `FsSrGen.exe`, `FSharp.SRGen.Build.Tasks.dll`, and the other tools found in the `lkg` directory.
|
1. Some additional tools are required to build the compiler, notably `fslex.exe`, `fsyacc.exe`, `FSharp.PowerPack.Build.Tasks.dll`, `FsSrGen.exe`, `FSharp.SRGen.Build.Tasks.dll`, and the other tools found in the `lkg` directory.
|
||||||
1. The overall bootstrapping process executes as follows
|
1. The overall bootstrapping process executes as follows
|
||||||
|
|
|
@ -23,7 +23,7 @@ In order to run all of the tests, you will need to install
|
||||||
|
|
||||||
* [Perl](http://www.perl.org/get.html) (ActiveState Perl 5.16.3 is known to work fine)
|
* [Perl](http://www.perl.org/get.html) (ActiveState Perl 5.16.3 is known to work fine)
|
||||||
|
|
||||||
Perl must be included in the `%PATH%` for the below steps to work. It is also recommended that you run tests from an elevated command prompt, as there are a couple of test cases which modify the GAC, and this requires administrative privileges.
|
Perl must be included in the `%PATH%` for the below steps to work. It is also recommended that you run tests from an elevated command prompt, as there are a couple of test cases which require administrative privileges.
|
||||||
|
|
||||||
Before running tests, make sure you have successfully built all required projects as specified in the 'Prepare For Tests' section of the [DEVGUIDE](DEVGUIDE.md).
|
Before running tests, make sure you have successfully built all required projects as specified in the 'Prepare For Tests' section of the [DEVGUIDE](DEVGUIDE.md).
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ open System.Runtime.InteropServices
|
||||||
|
|
||||||
#if PORTABLE
|
#if PORTABLE
|
||||||
[<assembly:AssemblyProduct("Microsoft\174 F#")>]
|
[<assembly:AssemblyProduct("Microsoft\174 F#")>]
|
||||||
[<assembly:AssemblyFlags(System.Reflection.AssemblyNameFlags.Retargetable)>] // ensure we replace any 4.0.30319.* or 4.0.31105.* versions in the GAC. These are the FileVersions for RTM VS2010 and SP1 VS2010
|
[<assembly:AssemblyFlags(System.Reflection.AssemblyNameFlags.Retargetable)>]
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
do()
|
do()
|
||||||
|
|
|
@ -17,7 +17,7 @@ do()
|
||||||
[<assembly:System.Runtime.CompilerServices.InternalsVisibleTo("Unittests")>]
|
[<assembly:System.Runtime.CompilerServices.InternalsVisibleTo("Unittests")>]
|
||||||
[<assembly:System.Runtime.CompilerServices.InternalsVisibleTo("SystematicUnitTests")>]
|
[<assembly:System.Runtime.CompilerServices.InternalsVisibleTo("SystematicUnitTests")>]
|
||||||
#else
|
#else
|
||||||
[<assembly:AssemblyFileVersion("4.0.40401.666")>] // ensure we replace any 4.0.30319.* or 4.0.31105.* versions in the GAC. These are the FileVersions for RTM VS2010 and SP1 VS2010
|
[<assembly:AssemblyFileVersion("4.0.40401.666")>]
|
||||||
[<assembly:System.Runtime.CompilerServices.InternalsVisibleTo("Unittests, PublicKey=002400000480000094000000060200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AEC8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293")>]
|
[<assembly:System.Runtime.CompilerServices.InternalsVisibleTo("Unittests, PublicKey=002400000480000094000000060200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AEC8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293")>]
|
||||||
[<assembly:System.Runtime.CompilerServices.InternalsVisibleTo("SystematicUnitTests, PublicKey=002400000480000094000000060200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AEC8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293")>]
|
[<assembly:System.Runtime.CompilerServices.InternalsVisibleTo("SystematicUnitTests, PublicKey=002400000480000094000000060200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AEC8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293")>]
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -11,7 +11,7 @@ if /i "%1" == "release" goto :ok
|
||||||
if /i "%1" == "vsdebug" goto :ok
|
if /i "%1" == "vsdebug" goto :ok
|
||||||
if /i "%1" == "vsrelease" goto :ok
|
if /i "%1" == "vsrelease" goto :ok
|
||||||
|
|
||||||
echo GACs built binaries, adds required strong name verification skipping, and optionally NGens built binaries
|
echo adding required strong name verification skipping, and NGening built binaries
|
||||||
echo Usage:
|
echo Usage:
|
||||||
echo update.cmd debug [-ngen]
|
echo update.cmd debug [-ngen]
|
||||||
echo update.cmd release [-ngen]
|
echo update.cmd release [-ngen]
|
||||||
|
@ -35,7 +35,6 @@ if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT%
|
||||||
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
||||||
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
||||||
|
|
||||||
set GACUTIL="%WINSDKNETFXTOOLS%gacutil.exe"
|
|
||||||
set SN32="%WINSDKNETFXTOOLS%sn.exe"
|
set SN32="%WINSDKNETFXTOOLS%sn.exe"
|
||||||
set SN64="%WINSDKNETFXTOOLS%x64\sn.exe"
|
set SN64="%WINSDKNETFXTOOLS%x64\sn.exe"
|
||||||
set NGEN32=%windir%\Microsoft.NET\Framework\v4.0.30319\ngen.exe
|
set NGEN32=%windir%\Microsoft.NET\Framework\v4.0.30319\ngen.exe
|
||||||
|
@ -80,9 +79,6 @@ if /i "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
|
||||||
%SN64% -Vr Salsa,b03f5f7f11d50a3a
|
%SN64% -Vr Salsa,b03f5f7f11d50a3a
|
||||||
)
|
)
|
||||||
|
|
||||||
rem Only GACing FSharp.Core for now
|
|
||||||
%GACUTIL% /if %BINDIR%\FSharp.Core.dll
|
|
||||||
|
|
||||||
rem NGen fsc, fsi, fsiAnyCpu, and FSharp.Build.dll
|
rem NGen fsc, fsi, fsiAnyCpu, and FSharp.Build.dll
|
||||||
if /i not "%2"=="-ngen" goto :donengen
|
if /i not "%2"=="-ngen" goto :donengen
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ let updateCmd envVars args = processor {
|
||||||
// if /i "%1" == "release" goto :ok
|
// if /i "%1" == "release" goto :ok
|
||||||
ignore "already validated input"
|
ignore "already validated input"
|
||||||
|
|
||||||
// echo GACs built binaries, adds required strong name verification skipping, and optionally NGens built binaries
|
// echo adding required strong name verification skipping, and NGening built binaries
|
||||||
// echo Usage:
|
// echo Usage:
|
||||||
// echo update.cmd debug [-ngen]
|
// echo update.cmd debug [-ngen]
|
||||||
// echo update.cmd release [-ngen]
|
// echo update.cmd release [-ngen]
|
||||||
|
@ -82,8 +82,6 @@ let updateCmd envVars args = processor {
|
||||||
|
|
||||||
let WINSDKNETFXTOOLS = match allWINSDKNETFXTOOLS |> Seq.tryPick id with Some sdk -> sdk | None -> ""
|
let WINSDKNETFXTOOLS = match allWINSDKNETFXTOOLS |> Seq.tryPick id with Some sdk -> sdk | None -> ""
|
||||||
|
|
||||||
// set GACUTIL="%WINSDKNETFXTOOLS%gacutil.exe"
|
|
||||||
let GACUTIL = WINSDKNETFXTOOLS/"gacutil.exe"
|
|
||||||
// set SN32="%WINSDKNETFXTOOLS%sn.exe"
|
// set SN32="%WINSDKNETFXTOOLS%sn.exe"
|
||||||
let SN32 = WINSDKNETFXTOOLS/"sn.exe"
|
let SN32 = WINSDKNETFXTOOLS/"sn.exe"
|
||||||
// set SN64="%WINSDKNETFXTOOLS%x64\sn.exe"
|
// set SN64="%WINSDKNETFXTOOLS%x64\sn.exe"
|
||||||
|
@ -95,7 +93,6 @@ let updateCmd envVars args = processor {
|
||||||
|
|
||||||
let checkResult = function CmdResult.ErrorLevel err -> Failure (sprintf "ERRORLEVEL %d" err) | CmdResult.Success -> Success ()
|
let checkResult = function CmdResult.ErrorLevel err -> Failure (sprintf "ERRORLEVEL %d" err) | CmdResult.Success -> Success ()
|
||||||
|
|
||||||
let gacutil flags = Commands.gacutil exec GACUTIL flags >> checkResult
|
|
||||||
let ngen32 = Commands.ngen exec NGEN32 >> checkResult
|
let ngen32 = Commands.ngen exec NGEN32 >> checkResult
|
||||||
let ngen64 = Commands.ngen exec NGEN64 >> checkResult
|
let ngen64 = Commands.ngen exec NGEN64 >> checkResult
|
||||||
let sn32 = exec SN32 >> checkResult
|
let sn32 = exec SN32 >> checkResult
|
||||||
|
@ -160,10 +157,6 @@ let updateCmd envVars args = processor {
|
||||||
(fun () -> Success ())
|
(fun () -> Success ())
|
||||||
//)
|
//)
|
||||||
|
|
||||||
// rem Only GACing FSharp.Core for now
|
|
||||||
// %GACUTIL% /if %BINDIR%\FSharp.Core.dll
|
|
||||||
do! gacutil "/if" (binDir/"FSharp.Core.dll")
|
|
||||||
|
|
||||||
// rem NGen fsc, fsi, fsiAnyCpu, and FSharp.Build.dll
|
// rem NGen fsc, fsi, fsiAnyCpu, and FSharp.Build.dll
|
||||||
// if /i not "%2"=="-ngen" goto :donengen
|
// if /i not "%2"=="-ngen" goto :donengen
|
||||||
|
|
||||||
|
|
|
@ -182,8 +182,6 @@ set PATH=%PATH%;%WINSDKNETFXTOOLS%
|
||||||
|
|
||||||
IF NOT DEFINED SNEXE32 IF EXIST "%WINSDKNETFXTOOLS%sn.exe" set SNEXE32=%WINSDKNETFXTOOLS%sn.exe
|
IF NOT DEFINED SNEXE32 IF EXIST "%WINSDKNETFXTOOLS%sn.exe" set SNEXE32=%WINSDKNETFXTOOLS%sn.exe
|
||||||
IF NOT DEFINED SNEXE64 IF EXIST "%WINSDKNETFXTOOLS%x64\sn.exe" set SNEXE64=%WINSDKNETFXTOOLS%x64\sn.exe
|
IF NOT DEFINED SNEXE64 IF EXIST "%WINSDKNETFXTOOLS%x64\sn.exe" set SNEXE64=%WINSDKNETFXTOOLS%x64\sn.exe
|
||||||
IF NOT DEFINED GACUTILEXE32 IF EXIST "%WINSDKNETFXTOOLS%gacutil.exe" set GACUTILEXE32=%WINSDKNETFXTOOLS%gacutil.exe
|
|
||||||
IF NOT DEFINED GACUTILEXE64 IF EXIST "%WINSDKNETFXTOOLS%x64\gacutil.exe" set GACUTILEXE64=%WINSDKNETFXTOOLS%x64\gacutil.exe
|
|
||||||
|
|
||||||
set FSC=%FSCBINPATH%\fsc.exe
|
set FSC=%FSCBINPATH%\fsc.exe
|
||||||
set PATH=%FSCBINPATH%;%PATH%
|
set PATH=%FSCBINPATH%;%PATH%
|
||||||
|
|
|
@ -40,7 +40,6 @@ if not defined CSC set CSC=csc.exe %csc_flags%
|
||||||
|
|
||||||
REM SDK Dependencires.
|
REM SDK Dependencires.
|
||||||
if not defined ILDASM set ILDASM=ildasm.exe
|
if not defined ILDASM set ILDASM=ildasm.exe
|
||||||
if not defined GACUTIL set GACUTIL=gacutil.exe
|
|
||||||
if not defined PEVERIFY set PEVERIFY=peverify.exe
|
if not defined PEVERIFY set PEVERIFY=peverify.exe
|
||||||
if not defined RESGEN set RESGEN=resgen.exe
|
if not defined RESGEN set RESGEN=resgen.exe
|
||||||
|
|
||||||
|
@ -75,7 +74,6 @@ set fsc_flags=%fsc_flags%
|
||||||
|
|
||||||
set CLR_SUPPORTS_GENERICS=true
|
set CLR_SUPPORTS_GENERICS=true
|
||||||
set ILDASM=%ILDASM%
|
set ILDASM=%ILDASM%
|
||||||
set GACUTIL=%GACUTIL%
|
|
||||||
set CLR_SUPPORTS_WINFORMS=true
|
set CLR_SUPPORTS_WINFORMS=true
|
||||||
set CLR_SUPPORTS_SYSTEM_WEB=true
|
set CLR_SUPPORTS_SYSTEM_WEB=true
|
||||||
|
|
||||||
|
@ -148,7 +146,6 @@ REM == The logic here is: pick the latest msbuild
|
||||||
REM == If we are testing against NDP4.0, then don't try msbuild 3.5
|
REM == If we are testing against NDP4.0, then don't try msbuild 3.5
|
||||||
REM ==
|
REM ==
|
||||||
IF NOT "%CORSDK%"=="" IF EXIST "%CORSDK%\ildasm.exe" SET ILDASM=%CORSDK%\ildasm.exe
|
IF NOT "%CORSDK%"=="" IF EXIST "%CORSDK%\ildasm.exe" SET ILDASM=%CORSDK%\ildasm.exe
|
||||||
IF NOT "%CORSDK%"=="" IF EXIST "%CORSDK%\gacutil.exe" SET GACUTIL=%CORSDK%\gacutil.exe
|
|
||||||
IF NOT "%CORSDK%"=="" IF EXIST "%CORSDK%\peverify.exe" SET PEVERIFY=%CORSDK%\peverify.exe
|
IF NOT "%CORSDK%"=="" IF EXIST "%CORSDK%\peverify.exe" SET PEVERIFY=%CORSDK%\peverify.exe
|
||||||
IF NOT "%CORSDK%"=="" IF EXIST "%CORSDK%\resgen.exe" SET RESGEN=%CORSDK%\resgen.exe
|
IF NOT "%CORSDK%"=="" IF EXIST "%CORSDK%\resgen.exe" SET RESGEN=%CORSDK%\resgen.exe
|
||||||
IF NOT "%CORSDK%"=="" IF NOT EXIST "%RESGEN%" IF EXIST "%CORSDK%\..\resgen.exe" SET RESGEN=%CORSDK%\..\resgen.exe
|
IF NOT "%CORSDK%"=="" IF NOT EXIST "%RESGEN%" IF EXIST "%CORSDK%\..\resgen.exe" SET RESGEN=%CORSDK%\..\resgen.exe
|
||||||
|
@ -218,7 +215,6 @@ echo FSDATATPPATH =%FSDATATPPATH%
|
||||||
echo FSDIFF =%FSDIFF%
|
echo FSDIFF =%FSDIFF%
|
||||||
echo FSI =%FSI%
|
echo FSI =%FSI%
|
||||||
echo fsi_flags =%fsi_flags%
|
echo fsi_flags =%fsi_flags%
|
||||||
echo GACUTIL =%GACUTIL%
|
|
||||||
echo ILDASM =%ILDASM%
|
echo ILDASM =%ILDASM%
|
||||||
echo INSTALL_SKU =%INSTALL_SKU%
|
echo INSTALL_SKU =%INSTALL_SKU%
|
||||||
echo MSBUILDTOOLSPATH =%MSBuildToolsPath%
|
echo MSBUILDTOOLSPATH =%MSBuildToolsPath%
|
||||||
|
|
|
@ -31,7 +31,6 @@ if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT%
|
||||||
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
||||||
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools" /v InstallationFolder') DO SET WINSDKNETFXTOOLS=%%B
|
||||||
|
|
||||||
set GACUTIL="%WINSDKNETFXTOOLS%gacutil.exe"
|
|
||||||
set SN32="%WINSDKNETFXTOOLS%sn.exe"
|
set SN32="%WINSDKNETFXTOOLS%sn.exe"
|
||||||
set SN64="%WINSDKNETFXTOOLS%x64\sn.exe"
|
set SN64="%WINSDKNETFXTOOLS%x64\sn.exe"
|
||||||
set NGEN32=%windir%\Microsoft.NET\Framework\v4.0.30319\ngen.exe
|
set NGEN32=%windir%\Microsoft.NET\Framework\v4.0.30319\ngen.exe
|
||||||
|
@ -136,9 +135,6 @@ if /i "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
|
||||||
%SN64% -Vr Salsa,b03f5f7f11d50a3a
|
%SN64% -Vr Salsa,b03f5f7f11d50a3a
|
||||||
)
|
)
|
||||||
|
|
||||||
%GACUTIL% /if %BINDIR%\FSharp.Compiler.Interactive.Settings.dll
|
|
||||||
%GACUTIL% /if %BINDIR%\FSharp.Compiler.Server.Shared.dll
|
|
||||||
|
|
||||||
rem NGen fsc, fsi, fsiAnyCpu, and FSharp.Build.dll
|
rem NGen fsc, fsi, fsiAnyCpu, and FSharp.Build.dll
|
||||||
|
|
||||||
"%NGEN32%" install "%COMPILERSDKPATH%\fsc.exe" /queue:1
|
"%NGEN32%" install "%COMPILERSDKPATH%\fsc.exe" /queue:1
|
||||||
|
|
Загрузка…
Ссылка в новой задаче