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
- TagMapCollection.cs
- BoundConstants.cs
- DecimalKeyFrameCollection.cs
- SystemUdpStatistics.cs
- ConfigXmlComment.cs
- UnsafeNativeMethods.cs
- TreeNodeBinding.cs
- SpeakInfo.cs
- VariableQuery.cs
- EventProxy.cs
- RuleSet.cs
- XmlSerializableServices.cs
- TryLoadRunnableWorkflowCommand.cs
- ExpressionVisitorHelpers.cs
- AssemblyBuilder.cs
- WebException.cs
- SmiRequestExecutor.cs
- RunClient.cs
- InvalidWMPVersionException.cs
- AssemblyContextControlItem.cs
- WindowClosedEventArgs.cs
- PlanCompilerUtil.cs
- RemoteHelper.cs
- DocComment.cs
- SmiEventStream.cs
- ProfileEventArgs.cs
- WindowVisualStateTracker.cs
- XmlLoader.cs
- Types.cs
- DesignerTextViewAdapter.cs
- TagPrefixInfo.cs
- WizardPanel.cs
- CdpEqualityComparer.cs
- BitmapEffectGroup.cs
- DispatcherTimer.cs
- AsymmetricSignatureDeformatter.cs
- PageCatalogPart.cs
- TextParentUndoUnit.cs
- AttributeXamlType.cs
- GroupItemAutomationPeer.cs
- HttpPostedFile.cs
- UInt32Converter.cs
- QueryParameter.cs
- XmlWrappingWriter.cs
- ToolbarAUtomationPeer.cs
- WindowCollection.cs
- DataObjectAttribute.cs
- TransformationRules.cs
- ContractMapping.cs
- MultipartContentParser.cs
- BlurBitmapEffect.cs
- AddingNewEventArgs.cs
- Point3D.cs
- SafeTimerHandle.cs
- X509RawDataKeyIdentifierClause.cs
- CompositeActivityDesigner.cs
- DiscoveryMessageSequenceCD1.cs
- StaticTextPointer.cs
- DefaultProfileManager.cs
- EmptyEnumerator.cs
- ArraySegment.cs
- WindowsStatusBar.cs
- DependencyPropertyConverter.cs
- ValidationPropertyAttribute.cs
- DelegatedStream.cs
- WebPartsPersonalization.cs
- COM2TypeInfoProcessor.cs
- PrintDialog.cs
- iisPickupDirectory.cs
- FixedSOMPageElement.cs
- Brushes.cs
- TypeDescriptor.cs
- AutoGeneratedField.cs
- DataGridViewCellPaintingEventArgs.cs
- DeviceContext.cs
- contentDescriptor.cs
- EntityContainerRelationshipSet.cs
- precedingsibling.cs
- PopupEventArgs.cs
- DataTableCollection.cs
- OracleTransaction.cs
- PassportAuthenticationEventArgs.cs
- Dictionary.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- RegexCaptureCollection.cs
- VariableElement.cs
- DomainConstraint.cs
- CodeGeneratorAttribute.cs
- WebBrowserContainer.cs
- EmbossBitmapEffect.cs
- BStrWrapper.cs
- StructuredProperty.cs
- BidirectionalDictionary.cs
- LocalizationCodeDomSerializer.cs
- DataStreamFromComStream.cs
- TaiwanLunisolarCalendar.cs
- DataAdapter.cs
- HtmlEncodedRawTextWriter.cs
- TcpTransportElement.cs
- path.cs