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
- AccessViolationException.cs
- HttpRuntimeSection.cs
- CustomAttributeBuilder.cs
- Substitution.cs
- ClassData.cs
- TextTrailingWordEllipsis.cs
- OdbcDataReader.cs
- baseaxisquery.cs
- AutoResizedEvent.cs
- WindowHideOrCloseTracker.cs
- BitmapEffectGeneralTransform.cs
- Bold.cs
- SiteMapNode.cs
- ProfileGroupSettingsCollection.cs
- CalendarBlackoutDatesCollection.cs
- WhitespaceRuleReader.cs
- TransformerTypeCollection.cs
- SymbolType.cs
- LocatorPart.cs
- PathNode.cs
- DataGridViewComboBoxEditingControl.cs
- QueryConverter.cs
- Assert.cs
- WsatTransactionFormatter.cs
- SafeNativeMethods.cs
- DbModificationClause.cs
- SettingsSavedEventArgs.cs
- DependencyPropertyHelper.cs
- XmlDigitalSignatureProcessor.cs
- OracleFactory.cs
- SubclassTypeValidator.cs
- ListChangedEventArgs.cs
- SendActivityValidator.cs
- AutoGeneratedField.cs
- ElementHost.cs
- DependentList.cs
- CultureInfoConverter.cs
- PersonalizationStateQuery.cs
- SocketStream.cs
- ContentAlignmentEditor.cs
- UpdateTracker.cs
- TextRangeEditLists.cs
- sqlinternaltransaction.cs
- ExpandCollapsePattern.cs
- ToolBarButtonClickEvent.cs
- DataGridCommandEventArgs.cs
- _SingleItemRequestCache.cs
- Int32CollectionValueSerializer.cs
- Version.cs
- XmlWrappingReader.cs
- NameTable.cs
- BindingMemberInfo.cs
- Merger.cs
- QueryCacheManager.cs
- DialogWindow.cs
- DataColumnMappingCollection.cs
- NonSerializedAttribute.cs
- ImplicitInputBrush.cs
- Aes.cs
- LocalizedNameDescriptionPair.cs
- InstancePersistenceEvent.cs
- Resources.Designer.cs
- ScriptRegistrationManager.cs
- DSASignatureDeformatter.cs
- _HelperAsyncResults.cs
- TagMapCollection.cs
- HttpModulesSection.cs
- NetSectionGroup.cs
- CLSCompliantAttribute.cs
- XPathMessageContext.cs
- OdbcConnectionHandle.cs
- ProcessModule.cs
- cache.cs
- XMLUtil.cs
- InputGestureCollection.cs
- RadioButtonPopupAdapter.cs
- Maps.cs
- Separator.cs
- BindingManagerDataErrorEventArgs.cs
- MailAddressCollection.cs
- SQLBinaryStorage.cs
- Comparer.cs
- KeyPressEvent.cs
- XmlNamespaceManager.cs
- XmlSchemaExternal.cs
- XmlILIndex.cs
- CompleteWizardStep.cs
- CodeGeneratorOptions.cs
- FormViewAutoFormat.cs
- Mappings.cs
- ValueUtilsSmi.cs
- XmlSchemaProviderAttribute.cs
- ObjectMaterializedEventArgs.cs
- DoubleAnimationClockResource.cs
- TemplatedMailWebEventProvider.cs
- MonitorWrapper.cs
- SchemaObjectWriter.cs
- MsmqTransportElement.cs
- BindingRestrictions.cs
- querybuilder.cs