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
- CompressionTransform.cs
- EllipseGeometry.cs
- RegexStringValidatorAttribute.cs
- FileDialogCustomPlace.cs
- BamlLocalizableResourceKey.cs
- XmlSignatureProperties.cs
- StyleSheetRefUrlEditor.cs
- InkCanvasSelection.cs
- X509ChainPolicy.cs
- RouteTable.cs
- ZipPackagePart.cs
- MachineKeyConverter.cs
- EtwTrace.cs
- NamedPermissionSet.cs
- ReflectionServiceProvider.cs
- MimeTypeMapper.cs
- XmlCharType.cs
- LayoutEngine.cs
- FixedTextPointer.cs
- DataGridViewLinkCell.cs
- Message.cs
- HMACRIPEMD160.cs
- Mutex.cs
- FormsIdentity.cs
- TypeToTreeConverter.cs
- ActivityUtilities.cs
- DesigntimeLicenseContext.cs
- DurationConverter.cs
- MaterialGroup.cs
- ListBox.cs
- EndCreateSecurityTokenRequest.cs
- ProcessProtocolHandler.cs
- SQLBytes.cs
- NegotiateStream.cs
- TableRow.cs
- SHA512.cs
- PageAdapter.cs
- _SSPISessionCache.cs
- SerialPinChanges.cs
- smtppermission.cs
- XamlDebuggerXmlReader.cs
- ResourceKey.cs
- FormViewPagerRow.cs
- SqlUdtInfo.cs
- UiaCoreTypesApi.cs
- GetPageCompletedEventArgs.cs
- TemplatedAdorner.cs
- TableRow.cs
- TracingConnection.cs
- SerializableAttribute.cs
- UInt64.cs
- DataTrigger.cs
- COM2ExtendedTypeConverter.cs
- ScopelessEnumAttribute.cs
- TimeSpanMinutesConverter.cs
- MediaElementAutomationPeer.cs
- PackageProperties.cs
- RangeValidator.cs
- CompiledQueryCacheEntry.cs
- WmlTextViewAdapter.cs
- ServiceXNameTypeConverter.cs
- ParameterModifier.cs
- SamlAuthorizationDecisionClaimResource.cs
- DetailsViewInsertEventArgs.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- ComplusTypeValidator.cs
- DiagnosticsElement.cs
- DbConnectionPoolOptions.cs
- SiteMembershipCondition.cs
- ConfigurationException.cs
- StateDesignerConnector.cs
- RawKeyboardInputReport.cs
- PolicyValidationException.cs
- XmlDataImplementation.cs
- xmlformatgeneratorstatics.cs
- QuotedStringWriteStateInfo.cs
- SQLInt64Storage.cs
- CaseInsensitiveComparer.cs
- MimeTypeAttribute.cs
- DescendantBaseQuery.cs
- ScaleTransform3D.cs
- MultiDataTrigger.cs
- HTMLTagNameToTypeMapper.cs
- MetadataArtifactLoaderCompositeFile.cs
- SortedDictionary.cs
- WebPartExportVerb.cs
- MouseEvent.cs
- DynamicDataRoute.cs
- XmlBinaryReader.cs
- PointHitTestResult.cs
- AudioBase.cs
- TreeWalkHelper.cs
- DbInsertCommandTree.cs
- EdmValidator.cs
- WebPartConnectionCollection.cs
- HttpPostedFile.cs
- TableRowGroup.cs
- ModelItemDictionary.cs
- LinqDataSourceValidationException.cs
- ProcessThreadCollection.cs