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
- ThreadAbortException.cs
- TypeToArgumentTypeConverter.cs
- RuntimeCompatibilityAttribute.cs
- ListItemParagraph.cs
- Regex.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- WebPartVerbCollection.cs
- NetTcpSectionData.cs
- ViewValidator.cs
- HitTestResult.cs
- ViewCellSlot.cs
- ArrayList.cs
- TableNameAttribute.cs
- XPathException.cs
- SystemColors.cs
- RepeaterItemEventArgs.cs
- Win32SafeHandles.cs
- PrincipalPermission.cs
- OutputScope.cs
- BitmapEffectGeneralTransform.cs
- GrammarBuilder.cs
- DataRelationPropertyDescriptor.cs
- BufferedWebEventProvider.cs
- PropertyInformationCollection.cs
- XmlSchemaResource.cs
- EntitySqlQueryState.cs
- XslNumber.cs
- ComPlusDiagnosticTraceRecords.cs
- ReadOnlyCollectionBuilder.cs
- Size.cs
- BinarySerializer.cs
- LocalizableResourceBuilder.cs
- RegionIterator.cs
- IntPtr.cs
- InputReport.cs
- DelimitedListTraceListener.cs
- ViewCellRelation.cs
- GACIdentityPermission.cs
- Convert.cs
- ClosableStream.cs
- GridViewRowCollection.cs
- IntegerCollectionEditor.cs
- ReferenceSchema.cs
- RayMeshGeometry3DHitTestResult.cs
- Canvas.cs
- CommandHelpers.cs
- DataTableReader.cs
- BStrWrapper.cs
- GreaterThan.cs
- SystemTcpConnection.cs
- ToolStripProgressBar.cs
- DoubleCollectionValueSerializer.cs
- PersonalizationAdministration.cs
- UpWmlPageAdapter.cs
- ConfigXmlElement.cs
- HttpCacheVaryByContentEncodings.cs
- RenderTargetBitmap.cs
- DocumentOrderComparer.cs
- DbExpressionVisitor_TResultType.cs
- XsdDateTime.cs
- QilTypeChecker.cs
- XmlMembersMapping.cs
- MenuCommand.cs
- ListControlDesigner.cs
- FixedElement.cs
- MailMessage.cs
- StorageEntitySetMapping.cs
- SByteConverter.cs
- InfiniteIntConverter.cs
- HttpResponseBase.cs
- AxisAngleRotation3D.cs
- NetworkInformationPermission.cs
- SystemIdentity.cs
- GroupItemAutomationPeer.cs
- Light.cs
- NullableDoubleMinMaxAggregationOperator.cs
- CookielessHelper.cs
- DebuggerAttributes.cs
- TrackingStringDictionary.cs
- Operator.cs
- SkipStoryboardToFill.cs
- TextureBrush.cs
- NodeFunctions.cs
- ConfigXmlAttribute.cs
- ADConnectionHelper.cs
- StaticResourceExtension.cs
- FileResponseElement.cs
- DataGridViewAccessibleObject.cs
- DataGridAddNewRow.cs
- X509CertificateValidator.cs
- DesignerDataSchemaClass.cs
- MailAddress.cs
- GroupBoxAutomationPeer.cs
- DataSourceCache.cs
- WindowsRegion.cs
- StaticResourceExtension.cs
- XmlLangPropertyAttribute.cs
- FixedSOMTableCell.cs
- XmlSchemaCompilationSettings.cs
- VerificationException.cs