Code:
/ FX-1434 / FX-1434 / 1.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
- ToolStripContainerActionList.cs
- Rectangle.cs
- PlanCompilerUtil.cs
- BitStack.cs
- SmiContext.cs
- HitTestParameters3D.cs
- TranslateTransform3D.cs
- CellLabel.cs
- TypeExtension.cs
- RemoteWebConfigurationHostStream.cs
- DBDataPermissionAttribute.cs
- EditCommandColumn.cs
- DecoderBestFitFallback.cs
- DataGridViewTextBoxEditingControl.cs
- BamlBinaryReader.cs
- InkCollectionBehavior.cs
- BlobPersonalizationState.cs
- EndpointNameMessageFilter.cs
- NotCondition.cs
- XmlSubtreeReader.cs
- _AutoWebProxyScriptWrapper.cs
- PartialTrustHelpers.cs
- PrinterResolution.cs
- cryptoapiTransform.cs
- DragEventArgs.cs
- ToolStripContentPanel.cs
- HtmlProps.cs
- TemplateBindingExtension.cs
- Atom10FeedFormatter.cs
- SharingService.cs
- ResXBuildProvider.cs
- SqlUdtInfo.cs
- WebPartConnectionsConnectVerb.cs
- XPathNodeHelper.cs
- Base64Decoder.cs
- DataGridViewCellStyleChangedEventArgs.cs
- CustomAttributeBuilder.cs
- StylusShape.cs
- FlowDocument.cs
- GregorianCalendarHelper.cs
- DetailsViewDeleteEventArgs.cs
- SocketAddress.cs
- MultiBindingExpression.cs
- XmlSchemaAnyAttribute.cs
- GlobalizationSection.cs
- CustomSignedXml.cs
- ProjectionAnalyzer.cs
- __TransparentProxy.cs
- TimeStampChecker.cs
- Menu.cs
- CounterCreationDataCollection.cs
- CustomWebEventKey.cs
- X509ChainPolicy.cs
- XPathItem.cs
- Control.cs
- TextPattern.cs
- DrawingBrush.cs
- XmlSerializerAssemblyAttribute.cs
- TriggerCollection.cs
- CacheSection.cs
- ExpressionBuilder.cs
- ExpressionConverter.cs
- StructuredType.cs
- PackageProperties.cs
- TransformCollection.cs
- FileDialogPermission.cs
- DataException.cs
- PackagePart.cs
- FormParameter.cs
- FileUpload.cs
- CacheAxisQuery.cs
- WebResourceAttribute.cs
- Vector3DCollection.cs
- MenuItemBinding.cs
- DesignerImageAdapter.cs
- ObjectDataSourceDisposingEventArgs.cs
- SafePointer.cs
- OdbcDataAdapter.cs
- DataGridBoolColumn.cs
- ContentPresenter.cs
- DataGridPageChangedEventArgs.cs
- XamlTreeBuilder.cs
- TTSEngineTypes.cs
- OleAutBinder.cs
- Stacktrace.cs
- UnsafeNativeMethods.cs
- DbConvert.cs
- InputChannelBinder.cs
- BulletedList.cs
- ConsoleCancelEventArgs.cs
- XmlCharCheckingReader.cs
- GridViewDeleteEventArgs.cs
- TableLayoutPanelBehavior.cs
- ListenerElementsCollection.cs
- FixedTextContainer.cs
- DbDataRecord.cs
- StatusBarItem.cs
- XPathNodeHelper.cs
- ChooseAction.cs
- ProviderConnectionPointCollection.cs