EnvironmentHelper
This module contains functions which allow to read and write environment variables and build parameters
Nested types and modules
| Type | Description | 
| EnvironTarget | Type alias for System.EnvironmentVariableTarget  | 
        
| MachineDetails | A record which allows to display lots of machine specific information like machine name, processor count etc.  | 
        
Functions and values
| Function or value | Description | 
          
            ( @@ ) path1 path2
          
          
            Signature: path1:string -> path2:string -> string 
         | 
        
            
               
               
            
          Combines two path strings using Path.Combine after removing leading slashes from the second path  | 
      
          
            ( </> ) path1 path2
          
          
            Signature: path1:string -> path2:string -> string 
         | 
        
            
               
               
            
          Combines two path strings using Path.Combine  | 
      
          
            appSetting name
          
          
            Signature: name:string -> string 
         | 
        
            
               
               
            
          Retrieves the application settings variable with the given name  | 
      
          
            clearProcessEnvironVar name
          
          
            Signature: name:string -> unit 
         | 
        
            
               
               
            
          Clears the environment variable with the given name for the current process.  | 
      
          
            combinePaths path1 path2
          
          
            Signature: path1:string -> path2:string -> string 
         | 
        
            
               
               
            
          Combines two path strings using Path.Combine after removing leading slashes from the second path  | 
      
          
            combinePathsNoTrim path1 path2
          
          
            Signature: path1:string -> path2:string -> string 
         | 
        
            
               
               
            
          Combines two path strings using Path.Combine  | 
      
          
            convertWindowsToCurrentPath windowsPath
          
          
            Signature: windowsPath:string -> string 
         | 
        
            
               
               
            
          Convert the given windows path to a path in the current system  | 
      
          
            directorySeparator 
          
          
            Signature: string 
         | 
        
            
               
               
            
          The directory separator string. On most systems / or \  | 
      
          
            documentsFolder 
          
          
            Signature: string 
         | 
        
            
               
               
            
          The path to the personal documents  | 
      
          
            encoding 
          
          
            Signature: Encoding 
         | 
        
            
               
               
            
          Contains the IO encoding which is given via build parameter "encoding" or the default encoding if no encoding was specified.  | 
      
          
            environVar name
          
          
            Signature: name:string -> string 
         | 
        
            
               
               
            
          Retrieves the environment variable with the given name  | 
      
          
            environVarOrDefault name defaultValue
          
          
            Signature: name:string -> defaultValue:string -> string 
         | 
        
            
               
               
            
          Retrieves the environment variable with the given name or returns the default if no value was set  | 
      
          
            environVarOrFail name
          
          
            Signature: name:string -> string 
         | 
        
            
               
               
            
          Retrieves the environment variable with the given name or fails if not found  | 
      
          
            environVarOrNone name
          
          
            Signature: name:string -> string option 
         | 
        
            
               
               
            
          Retrieves the environment variable or None if no value was set  | 
      
          
            environVars target
          
          
            Signature: target:EnvironmentVariableTarget -> (obj * obj) list 
         | 
        
            
               
               
            
          Retrieves all environment variables from the given target  | 
      
          
            getBuildParam name
          
          
            Signature: name:string -> string 
         | 
        
            
               
               
            
          Returns the value of the build parameter with the given name if it was set and otherwise an empty string  | 
      
          
            getBuildParamOrDefault name defaultParam
          
          
            Signature: name:string -> defaultParam:string -> string 
         | 
        
            
               
               
            
          Returns the value of the build parameter with the given name if it was set and otherwise the given default value  | 
      
          
            getDrivesInfo ()
          
          
            Signature: unit -> seq<string> 
         | 
        
            
               
               
            
          Retrieves information about the hard drives  | 
      
          
            getEnvironmentVarAsBool varName
          
          
            Signature: varName:string -> bool 
         | 
        
            
               
               
            
          Retrieves the environment variable with the given name or returns false if no value was set  | 
      
          
            getEnvironmentVarAsBoolOrDefault (...)
          
          
            Signature: varName:string -> defaultValue:bool -> bool 
         | 
        
            
               
               
            
          Retrieves the environment variable with the given name or returns the default value if no value was set  | 
      
          
            getInstalledDotNetFrameworks ()
          
          
            Signature: unit -> seq<string> 
         | 
        
            
               
               
            
          Returns a sequence with all installed .NET framework versions  | 
      
          
            getMachineEnvironment ()
          
          
            Signature: unit -> MachineDetails 
         | 
        
            
               
               
            
          Retrieves lots of machine specific information like machine name, processor count etc.  | 
      
          
            getNewestTool possibleToolPaths
          
          
            Signature: possibleToolPaths:seq<'a> -> 'a 
        Type parameters: 'a  | 
        
            
               
               
            
          Helper function to help find framework or sdk tools from the newest toolkit available  | 
      
          
            getTargetPlatformDir platformVersion
          
          
            Signature: platformVersion:string -> string 
         | 
        
            
               
               
            
          Gets the local directory for the given target platform  | 
      
          
            hasBuildParam name
          
          
            Signature: name:string -> bool 
         | 
        
            
               
               
            
          Returns if the build parameter with the given name was set  | 
      
          
            isLinux 
          
          
            Signature: bool 
         | 
        
            
               
               
            
          Determines if the current system is a Linux system  | 
      
          
            isMacOS 
          
          
            Signature: bool 
         | 
        
            
               
               
            
          Determines if the current system is a MacOs system  | 
      
          
            isMono 
          
          
            Signature: bool 
         | 
        
            
               
               
            
          Determines if the current system is a mono system Todo: Detect mono on windows  | 
      
          
            isUnix 
          
          
            Signature: bool 
         | 
        
            
               
               
            
          Determines if the current system is an Unix system  | 
      
          
            isWindows 
          
          
            Signature: bool 
         | 
        
            
               
               
            
          Determines if the current system is a Windows system  | 
      
          
            monoArguments 
          
          
            Signature: string 
         | 
        
            
               
               
            
          Arguments on the Mono executable  | 
      
          
            monoPath 
          
          
            Signature: string 
         | 
        
            
               
               
            
          
         | 
      
          
            monoVersion 
          
          
            Signature: (string * Version option) option 
         | 
        
            
               
               
            
          required sometimes to workaround mono crashes http://stackoverflow.com/a/8414517/1269722  | 
      
          
            msSdkBasePath 
          
          
            Signature: string 
         | 
        
            
               
               
            
          Base path for getting tools from Microsoft SDKs  | 
      
          
            normalizePath path
          
          
            Signature: path:string -> string 
         | 
        
            
               
               
            
          
         | 
      
          
            platformInfoAction psi
          
          
            Signature: psi:ProcessStartInfo -> unit 
         | 
        
            
               
               
            
          Modifies the ProcessStartInfo according to the platform semantics  | 
      
          
            ProgramFiles 
          
          
            Signature: string 
         | 
        
            
               
               
            
          The path of the "Program Files" folder - might be x64 on x64 machine  | 
      
          
            ProgramFilesX86 
          
          
            Signature: string 
         | 
        
            
               
               
            
          The path of Program Files (x86) It seems this covers all cases where PROCESSOR_ARCHITECTURE may misreport and the case where the other variable PROCESSOR_ARCHITEW6432 can be null  | 
      
          
            sdkBasePath 
          
          
            Signature: string 
         | 
        
            
               
               
            
          Base path for getting tools from Windows SDKs  | 
      
          
            setBuildParam name value
          
          
            Signature: name:string -> value:string -> unit 
         | 
        
            
               
               
            
          Sets the build parameter with the given name for the current process.  | 
      
          
            setEnvironVar name value
          
          
            Signature: name:string -> value:string -> unit 
         | 
        
            
               
               
            
          Sets the environment variable with the given name  | 
      
          
            setMachineEnvironVar name value
          
          
            Signature: name:string -> value:string -> unit 
         | 
        
            
               
               
            
          Sets the environment variable with the given name for the current machine.  | 
      
          
            setProcessEnvironVar name value
          
          
            Signature: name:string -> value:string -> unit 
         | 
        
            
               
               
            
          Sets the environment variable with the given name for the current process.  | 
      
          
            setUserEnvironVar name value
          
          
            Signature: name:string -> value:string -> unit 
         | 
        
            
               
               
            
          Sets the environment variable with the given name for the current user.  | 
      
          
            splitEnvironVar name
          
          
            Signature: name:string -> string list 
         | 
        
            
               
               
            
          Splits the entries of an environment variable and removes the empty ones.  | 
      
          
            SystemRoot 
          
          
            Signature: string 
         | 
        
            
               
               
            
          The system root environment variable. Typically "C:\Windows"  | 
      
          
            TargetPlatformPrefix 
          
          
            Signature: string 
         | 
        
            
               
               
            
          The path of the current target platform  |