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
- CodeBlockBuilder.cs
- CngAlgorithmGroup.cs
- DoubleCollectionConverter.cs
- RegionInfo.cs
- ErrorWrapper.cs
- NumericUpDownAccelerationCollection.cs
- PlainXmlDeserializer.cs
- AccessDataSourceView.cs
- ToolStripDropTargetManager.cs
- MailAddress.cs
- _ListenerRequestStream.cs
- FrugalMap.cs
- SmtpReplyReader.cs
- RawStylusInputCustomDataList.cs
- TemplatedMailWebEventProvider.cs
- OleDbCommand.cs
- TextTrailingWordEllipsis.cs
- CalendarButtonAutomationPeer.cs
- VirtualizingStackPanel.cs
- ConnectionStringSettings.cs
- PenThreadPool.cs
- CompiledWorkflowDefinitionContext.cs
- ObjectDataSourceMethodEventArgs.cs
- Model3DGroup.cs
- Double.cs
- CreateParams.cs
- MeshGeometry3D.cs
- PropertyExpression.cs
- EntityClientCacheKey.cs
- HtmlToClrEventProxy.cs
- CustomValidator.cs
- SevenBitStream.cs
- AdapterUtil.cs
- ZoneIdentityPermission.cs
- CompilerGeneratedAttribute.cs
- MulticastNotSupportedException.cs
- ValidationEventArgs.cs
- FocusManager.cs
- DynamicFilterExpression.cs
- PathGeometry.cs
- FontUnitConverter.cs
- SettingsAttributes.cs
- TransactionFilter.cs
- ControlCollection.cs
- WebPartConnectionsDisconnectVerb.cs
- FlowPanelDesigner.cs
- TextWriter.cs
- UriTemplateTableMatchCandidate.cs
- InkCanvasSelection.cs
- BinaryQueryOperator.cs
- FollowerQueueCreator.cs
- HtmlHead.cs
- FormViewDeleteEventArgs.cs
- MemoryStream.cs
- XPathQilFactory.cs
- CacheSection.cs
- XamlWriter.cs
- HtmlTable.cs
- PageThemeParser.cs
- DataGridParentRows.cs
- RemoteWebConfigurationHostStream.cs
- OracleMonthSpan.cs
- Camera.cs
- Int16AnimationBase.cs
- ZipFileInfoCollection.cs
- OutgoingWebRequestContext.cs
- ColorConvertedBitmap.cs
- TextProperties.cs
- ControlDesignerState.cs
- EventSourceCreationData.cs
- WebServiceFault.cs
- ProxyManager.cs
- InvokeWebService.cs
- ProfileSection.cs
- SqlWriter.cs
- SqlStream.cs
- PropertiesTab.cs
- CreateCardRequest.cs
- GenericUriParser.cs
- ObjectContext.cs
- EndpointReference.cs
- StreamGeometryContext.cs
- OuterGlowBitmapEffect.cs
- BindingGroup.cs
- TableColumn.cs
- PreviewKeyDownEventArgs.cs
- CfgParser.cs
- SecurityHelper.cs
- FileUpload.cs
- ExpressionPrefixAttribute.cs
- QueryOutputWriter.cs
- InstanceStore.cs
- GridLengthConverter.cs
- StylusButton.cs
- __FastResourceComparer.cs
- PolyBezierSegment.cs
- HMAC.cs
- TempFiles.cs
- ProcessModelInfo.cs
- TableRowCollection.cs