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
- PowerStatus.cs
- UserNameSecurityTokenAuthenticator.cs
- RemoveFromCollection.cs
- RsaSecurityToken.cs
- StringBuilder.cs
- BaseWebProxyFinder.cs
- FormsAuthenticationTicket.cs
- FileStream.cs
- Privilege.cs
- ScriptingAuthenticationServiceSection.cs
- EnumDataContract.cs
- XmlImplementation.cs
- CuspData.cs
- PrintSchema.cs
- Automation.cs
- CatalogZone.cs
- _NestedSingleAsyncResult.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- XmlHierarchyData.cs
- InstanceNameConverter.cs
- TreeNode.cs
- PartialCachingAttribute.cs
- AssemblyAttributesGoHere.cs
- MethodCallConverter.cs
- ByeMessageCD1.cs
- XsdBuildProvider.cs
- ManualResetEvent.cs
- VirtualizingStackPanel.cs
- DeferredReference.cs
- ProjectionPathSegment.cs
- ValueExpressions.cs
- DependencyPropertyValueSerializer.cs
- XmlObjectSerializerWriteContext.cs
- RoutedPropertyChangedEventArgs.cs
- CodeDOMUtility.cs
- Utility.cs
- DurableOperationAttribute.cs
- Subordinate.cs
- CounterSampleCalculator.cs
- ContractMapping.cs
- LockCookie.cs
- ContainerControl.cs
- SparseMemoryStream.cs
- InfoCardAsymmetricCrypto.cs
- MarshalByValueComponent.cs
- Size.cs
- InheritanceAttribute.cs
- VersionedStream.cs
- SizeChangedInfo.cs
- MenuCommands.cs
- WmlLiteralTextAdapter.cs
- GeometryConverter.cs
- ColorConverter.cs
- EventDescriptorCollection.cs
- SafeNativeMethodsCLR.cs
- DetailsView.cs
- ParallelTimeline.cs
- ProfileService.cs
- WebSysDefaultValueAttribute.cs
- ListViewDeletedEventArgs.cs
- SchemaAttDef.cs
- TextTreeInsertElementUndoUnit.cs
- PropertyFilterAttribute.cs
- XmlBoundElement.cs
- LazyTextWriterCreator.cs
- Condition.cs
- SqlParameterCollection.cs
- MenuItemCollection.cs
- InputReferenceExpression.cs
- OpenTypeCommon.cs
- SmiXetterAccessMap.cs
- RuntimeResourceSet.cs
- TextRangeEditTables.cs
- Subtree.cs
- CodeMethodInvokeExpression.cs
- CustomGrammar.cs
- QuaternionIndependentAnimationStorage.cs
- PropertyChangeTracker.cs
- QueueAccessMode.cs
- ExpressionBuilderContext.cs
- AffineTransform3D.cs
- AssemblyAttributesGoHere.cs
- ObjectStateEntry.cs
- WebResponse.cs
- PathSegment.cs
- InitiatorServiceModelSecurityTokenRequirement.cs
- DiscoveryClientDuplexChannel.cs
- Int32RectValueSerializer.cs
- ISessionStateStore.cs
- ProcessHost.cs
- nulltextnavigator.cs
- ColumnMapTranslator.cs
- ResolveNextArgumentWorkItem.cs
- Point4DConverter.cs
- WorkflowServiceHost.cs
- InternalResources.cs
- XmlDataLoader.cs
- IDictionary.cs
- SqlTriggerAttribute.cs
- HostedImpersonationContext.cs