Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Util / versioninfo.cs / 1305376 / versioninfo.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * Support for getting file versions * * Copyright (c) 1999 Microsoft Corporation */ namespace System.Web.Util { using System.Diagnostics; using System.Globalization; using System.Reflection; using System.Text; using System.Runtime.Serialization.Formatters; using System.Configuration.Assemblies; using System.Security.Permissions; // // Support for getting file version of relevant files // internal class VersionInfo { static private string _engineVersion; static private string _mscoreeVersion; static private string _exeName; static private object _lock = new object(); private VersionInfo() { } [FileIOPermission(SecurityAction.Assert, Unrestricted = true)] internal static string GetFileVersion(String filename) { #if !FEATURE_PAL // FEATURE_PAL does not fully support FileVersionInfo try { FileVersionInfo ver = FileVersionInfo.GetVersionInfo(filename); return string.Format(CultureInfo.InvariantCulture, "{0}.{1}.{2}.{3}", ver.FileMajorPart, ver.FileMinorPart, ver.FileBuildPart, ver.FilePrivatePart); } catch { return String.Empty; } #else // !FEATURE_PAL // ROTORTODO return String.Empty; #endif // !FEATURE_PAL } internal static string GetLoadedModuleFileName(string module) { #if !FEATURE_PAL // FEATURE_PAL does not fully support FileVersionInfo IntPtr h = UnsafeNativeMethods.GetModuleHandle(module); if (h == IntPtr.Zero) return null; StringBuilder buf = new StringBuilder(256); if (UnsafeNativeMethods.GetModuleFileName(h, buf, 256) == 0) return null; String fileName = buf.ToString(); if (StringUtil.StringStartsWith(fileName, "\\\\?\\")) // on Whistler GetModuleFileName migth return this fileName = fileName.Substring(4); return fileName; #else // !FEATURE_PAL // ROTORTODO return String.Empty; #endif // !FEATURE_PAL } internal static string GetLoadedModuleVersion(string module) { String filename = GetLoadedModuleFileName(module); if (filename == null) return null; return GetFileVersion(filename); } internal static string SystemWebVersion { get { return ThisAssembly.InformationalVersion; } } internal static string EngineVersion { #if !FEATURE_PAL // FEATURE_PAL does not enable IIS-based hosting features get { if (_engineVersion == null) { lock(_lock) { if (_engineVersion == null) _engineVersion = GetLoadedModuleVersion(ModName.ENGINE_FULL_NAME); } } return _engineVersion; #else // !FEATURE_PAL // ROTORTODO return "1.2.0.0"; #endif // !FEATURE_PAL } } internal static string ClrVersion { get { if (_mscoreeVersion == null) { lock(_lock) { if (_mscoreeVersion == null) { //@ // Substring(1) removes the 'v' character. _mscoreeVersion = System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion().Substring(1); } } } return _mscoreeVersion; } } internal static string ExeName { get { if (_exeName == null) { lock(_lock) { if (_exeName == null) { String s = GetLoadedModuleFileName(null); if (s == null) s = String.Empty; // strip path int i = s.LastIndexOf('\\'); if (i >= 0) s = s.Substring(i+1); // strip extension i = s.LastIndexOf('.'); if (i >= 0) s = s.Substring(0, i); _exeName = s.ToLower(CultureInfo.InvariantCulture); } } } return _exeName; } } } // // Support for getting OS Flavor // internal enum OsFlavor { Undetermined, Other, WebBlade, StdServer, AdvServer, DataCenter, } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * Support for getting file versions * * Copyright (c) 1999 Microsoft Corporation */ namespace System.Web.Util { using System.Diagnostics; using System.Globalization; using System.Reflection; using System.Text; using System.Runtime.Serialization.Formatters; using System.Configuration.Assemblies; using System.Security.Permissions; // // Support for getting file version of relevant files // internal class VersionInfo { static private string _engineVersion; static private string _mscoreeVersion; static private string _exeName; static private object _lock = new object(); private VersionInfo() { } [FileIOPermission(SecurityAction.Assert, Unrestricted = true)] internal static string GetFileVersion(String filename) { #if !FEATURE_PAL // FEATURE_PAL does not fully support FileVersionInfo try { FileVersionInfo ver = FileVersionInfo.GetVersionInfo(filename); return string.Format(CultureInfo.InvariantCulture, "{0}.{1}.{2}.{3}", ver.FileMajorPart, ver.FileMinorPart, ver.FileBuildPart, ver.FilePrivatePart); } catch { return String.Empty; } #else // !FEATURE_PAL // ROTORTODO return String.Empty; #endif // !FEATURE_PAL } internal static string GetLoadedModuleFileName(string module) { #if !FEATURE_PAL // FEATURE_PAL does not fully support FileVersionInfo IntPtr h = UnsafeNativeMethods.GetModuleHandle(module); if (h == IntPtr.Zero) return null; StringBuilder buf = new StringBuilder(256); if (UnsafeNativeMethods.GetModuleFileName(h, buf, 256) == 0) return null; String fileName = buf.ToString(); if (StringUtil.StringStartsWith(fileName, "\\\\?\\")) // on Whistler GetModuleFileName migth return this fileName = fileName.Substring(4); return fileName; #else // !FEATURE_PAL // ROTORTODO return String.Empty; #endif // !FEATURE_PAL } internal static string GetLoadedModuleVersion(string module) { String filename = GetLoadedModuleFileName(module); if (filename == null) return null; return GetFileVersion(filename); } internal static string SystemWebVersion { get { return ThisAssembly.InformationalVersion; } } internal static string EngineVersion { #if !FEATURE_PAL // FEATURE_PAL does not enable IIS-based hosting features get { if (_engineVersion == null) { lock(_lock) { if (_engineVersion == null) _engineVersion = GetLoadedModuleVersion(ModName.ENGINE_FULL_NAME); } } return _engineVersion; #else // !FEATURE_PAL // ROTORTODO return "1.2.0.0"; #endif // !FEATURE_PAL } } internal static string ClrVersion { get { if (_mscoreeVersion == null) { lock(_lock) { if (_mscoreeVersion == null) { //@ // Substring(1) removes the 'v' character. _mscoreeVersion = System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion().Substring(1); } } } return _mscoreeVersion; } } internal static string ExeName { get { if (_exeName == null) { lock(_lock) { if (_exeName == null) { String s = GetLoadedModuleFileName(null); if (s == null) s = String.Empty; // strip path int i = s.LastIndexOf('\\'); if (i >= 0) s = s.Substring(i+1); // strip extension i = s.LastIndexOf('.'); if (i >= 0) s = s.Substring(0, i); _exeName = s.ToLower(CultureInfo.InvariantCulture); } } } return _exeName; } } } // // Support for getting OS Flavor // internal enum OsFlavor { Undetermined, Other, WebBlade, StdServer, AdvServer, DataCenter, } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EntitySqlQueryState.cs
- CodeDelegateCreateExpression.cs
- BlurBitmapEffect.cs
- TextParagraph.cs
- ControlFilterExpression.cs
- RegisteredExpandoAttribute.cs
- ElementAction.cs
- Storyboard.cs
- ReadOnlyActivityGlyph.cs
- ColorContextHelper.cs
- StringArrayConverter.cs
- SQLRoleProvider.cs
- TrueReadOnlyCollection.cs
- PackagePart.cs
- glyphs.cs
- Lease.cs
- HttpCookie.cs
- FormViewDeleteEventArgs.cs
- FrameworkTextComposition.cs
- StringWriter.cs
- IIS7UserPrincipal.cs
- SqlWorkflowInstanceStoreLock.cs
- XamlClipboardData.cs
- unsafeIndexingFilterStream.cs
- ImageDrawing.cs
- StyleCollection.cs
- DataViewManager.cs
- OdbcReferenceCollection.cs
- ViewRendering.cs
- TreeViewHitTestInfo.cs
- MetricEntry.cs
- LassoHelper.cs
- SrgsSemanticInterpretationTag.cs
- _SSPIWrapper.cs
- ComContractElementCollection.cs
- TreeViewAutomationPeer.cs
- HttpSessionStateBase.cs
- SmiMetaDataProperty.cs
- WebAdminConfigurationHelper.cs
- XsltOutput.cs
- _BasicClient.cs
- SqlProfileProvider.cs
- ImageButton.cs
- WebPartTransformerAttribute.cs
- EventProviderBase.cs
- FieldAccessException.cs
- Types.cs
- NamespaceList.cs
- XmlTextReaderImpl.cs
- XmlArrayAttribute.cs
- ImportCatalogPart.cs
- IdleTimeoutMonitor.cs
- ZipIOExtraFieldElement.cs
- SafeRightsManagementQueryHandle.cs
- AssociationEndMember.cs
- ListBoxItemAutomationPeer.cs
- safex509handles.cs
- SafeCoTaskMem.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- EncryptedType.cs
- DetailsViewUpdateEventArgs.cs
- TimerEventSubscription.cs
- EventLogSession.cs
- CounterSample.cs
- EdmProperty.cs
- QueryOperatorEnumerator.cs
- DataTemplateSelector.cs
- Matrix3DStack.cs
- CommandHelper.cs
- ImageFormatConverter.cs
- PageVisual.cs
- UIntPtr.cs
- UnmanagedBitmapWrapper.cs
- StructuralType.cs
- QilGenerator.cs
- WebPartHelpVerb.cs
- SmtpCommands.cs
- Stacktrace.cs
- ControllableStoryboardAction.cs
- TransactionInterop.cs
- BaseAddressPrefixFilterElement.cs
- Int16AnimationBase.cs
- ClipboardData.cs
- SafeThemeHandle.cs
- ObjectParameterCollection.cs
- MD5Cng.cs
- ObjectDataSourceEventArgs.cs
- precedingquery.cs
- SQLByteStorage.cs
- CanonicalFontFamilyReference.cs
- ExpressionsCollectionConverter.cs
- ImageCodecInfoPrivate.cs
- MailMessage.cs
- FontConverter.cs
- EventlogProvider.cs
- DependencyPropertyHelper.cs
- TextParagraphCache.cs
- WebSysDescriptionAttribute.cs
- CDSsyncETWBCLProvider.cs
- FormViewDeletedEventArgs.cs