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
- SettingsPropertyWrongTypeException.cs
- MaterialCollection.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- IdentityHolder.cs
- ServiceContractGenerator.cs
- StrokeRenderer.cs
- UriSection.cs
- RoutedPropertyChangedEventArgs.cs
- AssemblyBuilder.cs
- DesignerDataSourceView.cs
- SqlDataSourceConfigureSortForm.cs
- BindingExpression.cs
- Activator.cs
- LocationSectionRecord.cs
- SelectedDatesCollection.cs
- StopStoryboard.cs
- DataControlFieldCell.cs
- ErrorFormatterPage.cs
- MessagePartDescriptionCollection.cs
- CodeSnippetExpression.cs
- GenericUriParser.cs
- PTManager.cs
- StackBuilderSink.cs
- InvalidFilterCriteriaException.cs
- FeedUtils.cs
- DictionarySurrogate.cs
- MailAddress.cs
- MsdtcClusterUtils.cs
- XmlValueConverter.cs
- FileDialog.cs
- NamespaceInfo.cs
- Dispatcher.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- SizeConverter.cs
- XDeferredAxisSource.cs
- ComEventsInfo.cs
- IUnknownConstantAttribute.cs
- WindowShowOrOpenTracker.cs
- PrintDialogException.cs
- XmlSchemaParticle.cs
- WebHeaderCollection.cs
- TokenizerHelper.cs
- EmbeddedMailObjectCollectionEditor.cs
- EnumerableCollectionView.cs
- CodeCommentStatementCollection.cs
- ListViewTableCell.cs
- OdbcEnvironment.cs
- ColorTranslator.cs
- errorpatternmatcher.cs
- _AuthenticationState.cs
- BitmapMetadataBlob.cs
- Win32KeyboardDevice.cs
- OwnerDrawPropertyBag.cs
- OperationAbortedException.cs
- PositiveTimeSpanValidator.cs
- ScrollPatternIdentifiers.cs
- WCFServiceClientProxyGenerator.cs
- SamlAuthenticationClaimResource.cs
- __FastResourceComparer.cs
- DateBoldEvent.cs
- designeractionbehavior.cs
- linebase.cs
- BaseCodePageEncoding.cs
- FontDifferentiator.cs
- JsonUriDataContract.cs
- SettingsSavedEventArgs.cs
- ToolStrip.cs
- DictionaryMarkupSerializer.cs
- InstanceOwnerQueryResult.cs
- UdpDiscoveryEndpoint.cs
- SmiTypedGetterSetter.cs
- BitmapSizeOptions.cs
- ControlBuilder.cs
- RowUpdatingEventArgs.cs
- OleDbRowUpdatedEvent.cs
- RegexEditorDialog.cs
- QuerySettings.cs
- GeneralTransform2DTo3D.cs
- ConfigsHelper.cs
- SqlWebEventProvider.cs
- JavaScriptSerializer.cs
- CultureMapper.cs
- Point3DCollection.cs
- FormClosedEvent.cs
- SetterTriggerConditionValueConverter.cs
- CustomTrackingRecord.cs
- StorageAssociationTypeMapping.cs
- ExpiredSecurityTokenException.cs
- CodeBlockBuilder.cs
- TextOnlyOutput.cs
- DataGridViewDataConnection.cs
- ContentValidator.cs
- BuildProviderCollection.cs
- ExtendedPropertyDescriptor.cs
- AutomationProperties.cs
- NavigationWindow.cs
- ISessionStateStore.cs
- UTF7Encoding.cs
- Style.cs
- Opcode.cs