Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / CompMod / System / CodeDOM / Compiler / RedistVersionInfo.cs / 3 / 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; } private static string GetOrcasPath() { // Temporary until the decision is made: // // \Windows\Microsoft.NET\Framework\v3.5.xxxxx\ or // \Windows\WinFX\v3.5\ string dir = Registry.GetValue(dotNetFrameworkRegistryPath, dotNetFrameworkSdkInstallKeyValueV35, null) as string; if (dir != null && Directory.Exists(dir)) { return dir; } return null; } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TableRow.cs
- SmtpDigestAuthenticationModule.cs
- MultiBindingExpression.cs
- InvokeProviderWrapper.cs
- CheckedPointers.cs
- ContextMenuStripActionList.cs
- RawStylusSystemGestureInputReport.cs
- BitmapEffectInput.cs
- ScrollBarRenderer.cs
- TreeChangeInfo.cs
- DefaultBinder.cs
- Socket.cs
- UnicodeEncoding.cs
- StatusBarAutomationPeer.cs
- RichTextBox.cs
- IsolatedStorageFilePermission.cs
- CustomExpressionEventArgs.cs
- AnnotationService.cs
- MarkerProperties.cs
- SimpleExpression.cs
- ResourceDictionaryCollection.cs
- EdmFunction.cs
- ObjectManager.cs
- TextServicesLoader.cs
- XsdBuildProvider.cs
- FixedTextBuilder.cs
- GuidConverter.cs
- ImageInfo.cs
- NetworkStream.cs
- FileRegion.cs
- WindowShowOrOpenTracker.cs
- MeshGeometry3D.cs
- ToolStripDropDown.cs
- VsPropertyGrid.cs
- MultiPageTextView.cs
- PerfCounters.cs
- CustomErrorCollection.cs
- Matrix3DConverter.cs
- InputReportEventArgs.cs
- QuestionEventArgs.cs
- TableDetailsCollection.cs
- XamlFilter.cs
- Rotation3D.cs
- ExtendedProperty.cs
- ProcessMonitor.cs
- PanelStyle.cs
- SelectedDatesCollection.cs
- ResolvedKeyFrameEntry.cs
- sitestring.cs
- UIElement.cs
- DocumentPageHost.cs
- AssemblyBuilder.cs
- HtmlInputFile.cs
- HttpCapabilitiesSectionHandler.cs
- LinqDataSourceDeleteEventArgs.cs
- BinHexEncoder.cs
- ExpressionCopier.cs
- PathSegment.cs
- NameGenerator.cs
- OwnerDrawPropertyBag.cs
- TerminateSequenceResponse.cs
- DBCommand.cs
- ColumnMapCopier.cs
- ProxyAttribute.cs
- InputLanguageManager.cs
- PreloadHost.cs
- CacheMemory.cs
- SchemaConstraints.cs
- LinqDataSourceValidationException.cs
- ResXDataNode.cs
- ThemeableAttribute.cs
- MulticastIPAddressInformationCollection.cs
- ColumnCollection.cs
- WorkflowHostingResponseContext.cs
- ConstructorArgumentAttribute.cs
- ConfigPathUtility.cs
- IISUnsafeMethods.cs
- CultureMapper.cs
- ImmComposition.cs
- CellTreeSimplifier.cs
- UrlMappingsModule.cs
- AttributeInfo.cs
- OpenFileDialog.cs
- SoapExtensionTypeElement.cs
- SpAudioStreamWrapper.cs
- XmlSchemaSequence.cs
- RegexNode.cs
- ImageDesigner.cs
- SafeRightsManagementQueryHandle.cs
- SerializationInfo.cs
- RemotingException.cs
- ControlBindingsCollection.cs
- ScriptingWebServicesSectionGroup.cs
- XamlReaderHelper.cs
- RecordManager.cs
- SequentialWorkflowHeaderFooter.cs
- RetrieveVirtualItemEventArgs.cs
- ProcessModuleCollection.cs
- WaitHandleCannotBeOpenedException.cs
- Variable.cs