Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / CompMod / System / CodeDOM / Compiler / RedistVersionInfo.cs / 1 / RedistVersionInfo.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.CodeDom.Compiler { using System; using System.Diagnostics; using System.IO; using System.CodeDom.Compiler; using System.Configuration; using System.Collections.Generic; using Microsoft.Win32; internal static class RedistVersionInfo { internal const String NameTag = "CompilerVersion"; // name of the tag for specifying the version internal const String DefaultVersion = InPlaceVersion; // should match one of the versions below //internal const String LatestVersion = "Latest"; // always bind to the latest version internal const String InPlaceVersion = "v2.0"; // always bind to Whidbey version internal const String RedistVersion = "v3.5"; // always bind to the Orcas version private const string dotNetFrameworkSdkInstallKeyValueV35 = "MSBuildToolsPath"; private const string dotNetFrameworkRegistryPath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MSBuild\\ToolsVersions\\3.5"; public static string GetCompilerPath(IDictionaryprovOptions, string compilerExecutable) { string compPath = Executor.GetRuntimeInstallDirectory(); // if provOptions is provided check to see if it alters what version we should bind to. // provOptions can be null if someone does new VB/CSCodeProvider(), in which case // they get the Whidbey behavior. if (provOptions != null) { string versionVal;//, newPath; if (provOptions.TryGetValue(RedistVersionInfo.NameTag, out versionVal)) { switch (versionVal) { //case RedistVersionInfo.LatestVersion: // always run against the latest version of the compiler // newPath = GetOrcasPath(); // if (newPath != null && File.Exists(Path.Combine(newPath, compilerExecutable))) // compPath = newPath; // break; case RedistVersionInfo.RedistVersion: // lock-forward to the Orcas version, if it's not available throw (we'll throw at compile time) compPath = GetOrcasPath(); break; case RedistVersionInfo.InPlaceVersion: // lock-back to the Whidbey version, no-op break; default: compPath = null; break; } } } if (compPath == null) throw new InvalidOperationException(SR.GetString(SR.CompilerNotFound, compilerExecutable)); return compPath; } /// /// this method returns the location of the Orcas compilers, but will return whatever /// version is requested via the COMPlus_ environment variables first /// private static string GetOrcasPath() { string dir = null; // if this is running in a private running environment such as Razzle, we would use the path // based on the environment variables: COMPLUS_InstallRoot and COMPLUS_Version. string comPlus_InstallRoot = Environment.GetEnvironmentVariable("COMPLUS_InstallRoot"); string comPlus_Version = Environment.GetEnvironmentVariable("COMPLUS_Version"); if (!string.IsNullOrEmpty(comPlus_InstallRoot) && !string.IsNullOrEmpty(comPlus_Version)) { dir = Path.Combine(comPlus_InstallRoot, comPlus_Version); if (Directory.Exists(dir)) return dir; } dir = Registry.GetValue(dotNetFrameworkRegistryPath, dotNetFrameworkSdkInstallKeyValueV35, null) as string; if (dir != null && Directory.Exists(dir)) { return dir; } return null; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.CodeDom.Compiler { using System; using System.Diagnostics; using System.IO; using System.CodeDom.Compiler; using System.Configuration; using System.Collections.Generic; using Microsoft.Win32; internal static class RedistVersionInfo { internal const String NameTag = "CompilerVersion"; // name of the tag for specifying the version internal const String DefaultVersion = InPlaceVersion; // should match one of the versions below //internal const String LatestVersion = "Latest"; // always bind to the latest version internal const String InPlaceVersion = "v2.0"; // always bind to Whidbey version internal const String RedistVersion = "v3.5"; // always bind to the Orcas version private const string dotNetFrameworkSdkInstallKeyValueV35 = "MSBuildToolsPath"; private const string dotNetFrameworkRegistryPath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MSBuild\\ToolsVersions\\3.5"; public static string GetCompilerPath(IDictionaryprovOptions, string compilerExecutable) { string compPath = Executor.GetRuntimeInstallDirectory(); // if provOptions is provided check to see if it alters what version we should bind to. // provOptions can be null if someone does new VB/CSCodeProvider(), in which case // they get the Whidbey behavior. if (provOptions != null) { string versionVal;//, newPath; if (provOptions.TryGetValue(RedistVersionInfo.NameTag, out versionVal)) { switch (versionVal) { //case RedistVersionInfo.LatestVersion: // always run against the latest version of the compiler // newPath = GetOrcasPath(); // if (newPath != null && File.Exists(Path.Combine(newPath, compilerExecutable))) // compPath = newPath; // break; case RedistVersionInfo.RedistVersion: // lock-forward to the Orcas version, if it's not available throw (we'll throw at compile time) compPath = GetOrcasPath(); break; case RedistVersionInfo.InPlaceVersion: // lock-back to the Whidbey version, no-op break; default: compPath = null; break; } } } if (compPath == null) throw new InvalidOperationException(SR.GetString(SR.CompilerNotFound, compilerExecutable)); return compPath; } /// /// this method returns the location of the Orcas compilers, but will return whatever /// version is requested via the COMPlus_ environment variables first /// private static string GetOrcasPath() { string dir = null; // if this is running in a private running environment such as Razzle, we would use the path // based on the environment variables: COMPLUS_InstallRoot and COMPLUS_Version. string comPlus_InstallRoot = Environment.GetEnvironmentVariable("COMPLUS_InstallRoot"); string comPlus_Version = Environment.GetEnvironmentVariable("COMPLUS_Version"); if (!string.IsNullOrEmpty(comPlus_InstallRoot) && !string.IsNullOrEmpty(comPlus_Version)) { dir = Path.Combine(comPlus_InstallRoot, comPlus_Version); if (Directory.Exists(dir)) return dir; } dir = Registry.GetValue(dotNetFrameworkRegistryPath, dotNetFrameworkSdkInstallKeyValueV35, null) as string; if (dir != null && Directory.Exists(dir)) { return dir; } return null; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GacUtil.cs
- WebPartConnectionCollection.cs
- LineProperties.cs
- MimeTypePropertyAttribute.cs
- CodeSnippetCompileUnit.cs
- IItemProperties.cs
- Size3DValueSerializer.cs
- DataGridViewLinkColumn.cs
- XmlException.cs
- SplitterCancelEvent.cs
- XPathNodePointer.cs
- WorkflowOperationFault.cs
- ToolboxItemAttribute.cs
- SecurityTokenAuthenticator.cs
- WebPartExportVerb.cs
- RegionData.cs
- IIS7UserPrincipal.cs
- Canvas.cs
- ImpersonateTokenRef.cs
- PeerPresenceInfo.cs
- PropertyDescriptor.cs
- AdornerHitTestResult.cs
- WindowsListView.cs
- DocumentsTrace.cs
- OracleLob.cs
- SafeMarshalContext.cs
- PrintController.cs
- LogicalTreeHelper.cs
- XmlSchemaExporter.cs
- WebPartDisplayModeCollection.cs
- MsmqIntegrationProcessProtocolHandler.cs
- ToolStripPanelRenderEventArgs.cs
- ThemeInfoAttribute.cs
- TableRowCollection.cs
- BitmapPalette.cs
- DoubleSumAggregationOperator.cs
- OlePropertyStructs.cs
- MembershipSection.cs
- ComplexType.cs
- CaseStatement.cs
- SystemException.cs
- xdrvalidator.cs
- FileDialog.cs
- TextPatternIdentifiers.cs
- SafeMILHandleMemoryPressure.cs
- SafeFileMapViewHandle.cs
- ActivityExecutorOperation.cs
- ParameterElement.cs
- TreeWalker.cs
- RootBrowserWindowProxy.cs
- InstanceDescriptor.cs
- DataGridViewRowPrePaintEventArgs.cs
- _LoggingObject.cs
- EndpointAddress.cs
- ServicePointManager.cs
- PasswordBox.cs
- CommentEmitter.cs
- TimeZone.cs
- BamlWriter.cs
- CriticalFinalizerObject.cs
- DesignerOptionService.cs
- HttpHandler.cs
- OdbcError.cs
- HiddenField.cs
- CodeDirectionExpression.cs
- SqlTypesSchemaImporter.cs
- WebPartEventArgs.cs
- AppSettingsReader.cs
- DomainConstraint.cs
- SwitchExpression.cs
- XmlSchemaExternal.cs
- StringUtil.cs
- NavigationEventArgs.cs
- ArrayTypeMismatchException.cs
- ListSourceHelper.cs
- CompiledRegexRunner.cs
- AdapterUtil.cs
- PassportAuthenticationEventArgs.cs
- ColorInterpolationModeValidation.cs
- ApplicationActivator.cs
- xmlsaver.cs
- EnumBuilder.cs
- HttpListener.cs
- TextTreeExtractElementUndoUnit.cs
- EncryptedData.cs
- Single.cs
- MimeTypePropertyAttribute.cs
- Color.cs
- LineSegment.cs
- LogicalExpressionTypeConverter.cs
- XsltArgumentList.cs
- ClientConfigurationSystem.cs
- DependencyObjectProvider.cs
- MessageEnumerator.cs
- PointF.cs
- XmlSchemaAny.cs
- Int64Animation.cs
- Vars.cs
- RuntimeHelpers.cs
- XmlUtil.cs