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
- XmlImplementation.cs
- ComponentConverter.cs
- PlatformCulture.cs
- CollectionChangeEventArgs.cs
- TransformedBitmap.cs
- AxImporter.cs
- _ListenerResponseStream.cs
- Color.cs
- CapacityStreamGeometryContext.cs
- WebPartDeleteVerb.cs
- KeyFrames.cs
- FigureParagraph.cs
- IdnMapping.cs
- ChannelServices.cs
- ObjectReferenceStack.cs
- SqlInternalConnection.cs
- ResourceContainer.cs
- WMIGenerator.cs
- XMLDiffLoader.cs
- ObjectListTitleAttribute.cs
- base64Transforms.cs
- StringKeyFrameCollection.cs
- ContractType.cs
- _HeaderInfoTable.cs
- IgnoreFileBuildProvider.cs
- XmlCDATASection.cs
- EntityParameter.cs
- MediaTimeline.cs
- BindingsCollection.cs
- Panel.cs
- PrimitiveCodeDomSerializer.cs
- ThreadStaticAttribute.cs
- InternalBufferOverflowException.cs
- MD5.cs
- QuerySubExprEliminator.cs
- SafeProcessHandle.cs
- HttpContext.cs
- KeyedQueue.cs
- MailHeaderInfo.cs
- TableAdapterManagerMethodGenerator.cs
- XDRSchema.cs
- CodeNamespaceImport.cs
- KeyTimeConverter.cs
- ListViewGroupConverter.cs
- DependencyPropertyConverter.cs
- TagPrefixInfo.cs
- CodeChecksumPragma.cs
- Exceptions.cs
- PeerEndPoint.cs
- XmlTextWriter.cs
- ZipPackage.cs
- WebConfigurationManager.cs
- DataComponentNameHandler.cs
- BreakRecordTable.cs
- SecurityKeyType.cs
- EmbossBitmapEffect.cs
- NGCSerializerAsync.cs
- ListBoxItemAutomationPeer.cs
- XslAstAnalyzer.cs
- SoundPlayerAction.cs
- MimeObjectFactory.cs
- DocumentPageHost.cs
- TagElement.cs
- MultiBindingExpression.cs
- MemberNameValidator.cs
- HtmlProps.cs
- MemberDescriptor.cs
- HttpHandlersSection.cs
- DocumentViewerConstants.cs
- UpdateRecord.cs
- InkPresenter.cs
- Delegate.cs
- DependencyObjectPropertyDescriptor.cs
- SoapEnumAttribute.cs
- XmlWriterTraceListener.cs
- PropertyMap.cs
- Transactions.cs
- ParameterExpression.cs
- SpeechEvent.cs
- Rect3DValueSerializer.cs
- AutoFocusStyle.xaml.cs
- DoubleAnimationBase.cs
- Msec.cs
- PersistenceTypeAttribute.cs
- SafeUserTokenHandle.cs
- ECDsa.cs
- Int32AnimationUsingKeyFrames.cs
- GenericNameHandler.cs
- WebHttpBindingCollectionElement.cs
- FixedSOMSemanticBox.cs
- CryptoKeySecurity.cs
- PointF.cs
- PermissionListSet.cs
- TargetConverter.cs
- SpAudioStreamWrapper.cs
- TextServicesCompartmentEventSink.cs
- XmlQuerySequence.cs
- MobileCategoryAttribute.cs
- OracleInfoMessageEventArgs.cs
- MenuScrollingVisibilityConverter.cs