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
- DataServiceKeyAttribute.cs
- DependencyPropertyAttribute.cs
- PrintControllerWithStatusDialog.cs
- SafeSecurityHandles.cs
- SetStoryboardSpeedRatio.cs
- processwaithandle.cs
- LOSFormatter.cs
- RIPEMD160.cs
- ApplicationInfo.cs
- Substitution.cs
- ChannelServices.cs
- SystemTcpStatistics.cs
- RenderingEventArgs.cs
- CrossAppDomainChannel.cs
- ScriptControlDescriptor.cs
- BasicHttpMessageSecurityElement.cs
- TypeUsage.cs
- RetrieveVirtualItemEventArgs.cs
- ConstraintManager.cs
- PropertyChangedEventArgs.cs
- ConsoleKeyInfo.cs
- Expression.cs
- HttpRuntime.cs
- SafeSecurityHandles.cs
- AvTraceFormat.cs
- VectorValueSerializer.cs
- InputLangChangeEvent.cs
- MDIControlStrip.cs
- TreeNodeCollection.cs
- HybridObjectCache.cs
- GroupBoxRenderer.cs
- MobileControl.cs
- DoubleAnimationBase.cs
- IndexedString.cs
- MsmqIntegrationBinding.cs
- NativeMethods.cs
- Scene3D.cs
- VerticalAlignConverter.cs
- DataSysAttribute.cs
- Rect3DValueSerializer.cs
- XmlNamedNodeMap.cs
- MaterialCollection.cs
- HttpWrapper.cs
- VBIdentifierDesigner.xaml.cs
- CookielessHelper.cs
- WebPartConnectionCollection.cs
- FlowLayoutSettings.cs
- DoubleLink.cs
- ClientProxyGenerator.cs
- BamlRecords.cs
- AnnotationAuthorChangedEventArgs.cs
- WebBrowsableAttribute.cs
- Rule.cs
- ServiceDescriptionData.cs
- ParentQuery.cs
- RoutedEventArgs.cs
- Int16.cs
- GridViewHeaderRowPresenter.cs
- ListControlDesigner.cs
- MethodRental.cs
- XmlDownloadManager.cs
- UrlAuthorizationModule.cs
- XmlDocument.cs
- FormViewPageEventArgs.cs
- Converter.cs
- FunctionImportMapping.cs
- QilDataSource.cs
- ServiceDiscoveryElement.cs
- DataGridCellItemAutomationPeer.cs
- FocusManager.cs
- AxisAngleRotation3D.cs
- XmlAttribute.cs
- _IPv6Address.cs
- ThumbAutomationPeer.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- SrgsRule.cs
- SoapBinding.cs
- SmtpReplyReader.cs
- ActiveXHelper.cs
- HttpRequestCacheValidator.cs
- SynchronizedDispatch.cs
- MaskInputRejectedEventArgs.cs
- PersonalizableTypeEntry.cs
- EUCJPEncoding.cs
- SystemNetHelpers.cs
- QilPatternFactory.cs
- RegistrySecurity.cs
- SqlCacheDependencyDatabaseCollection.cs
- XsdDuration.cs
- AnnotationComponentChooser.cs
- ResourceExpressionBuilder.cs
- PagedControl.cs
- DataMisalignedException.cs
- PermissionSetEnumerator.cs
- CheckedListBox.cs
- ApplicationProxyInternal.cs
- Sequence.cs
- XmlJsonReader.cs
- DataGridViewMethods.cs
- EntityRecordInfo.cs