Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / Configuration / GacUtil.cs / 1 / GacUtil.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System.Web.Configuration; using System.Runtime.InteropServices; using System.Security.Permissions; /* class for installing ASP.BrowserCapabilitiesFactory into gac */ internal sealed class GacUtil : IGac { [SecurityPermission(SecurityAction.Demand, UnmanagedCode = true)] public void GacInstall(string assemblyPath) { #if !FEATURE_PAL IAssemblyCache ac = null; int hr = NativeMethods.CreateAssemblyCache(out ac, 0); if (0 == hr) hr = ac.InstallAssembly(0, assemblyPath, IntPtr.Zero); #else // !FEATURE_PAL int hr = -1; try { Process gacutilprocess = new System.Diagnostics.Process(); if (gacutilprocess != null) { gacutilprocess.StartInfo.CreateNoWindow = true; #if PLATFORM_UNIX gacutilprocess.StartInfo.FileName = "gacutil"; #else gacutilprocess.StartInfo.FileName = "gacutil.exe"; #endif gacutilprocess.StartInfo.UseShellExecute = false; gacutilprocess.StartInfo.Arguments = "/i " + assemblyPath; gacutilprocess.Start(); while (!gacutilprocess.HasExited) { Thread.Sleep(250); } hr = gacutilprocess.ExitCode; } } catch (Exception) { hr = -1; } #endif // FEATURE_PAL if (0 != hr) { throw new Exception(SR.GetString(SR.Failed_gac_install)); } } [SecurityPermission(SecurityAction.Demand, UnmanagedCode = true)] public bool GacUnInstall(string assemblyName) { IAssemblyCache ac = null; uint position = 0; int hr = NativeMethods.CreateAssemblyCache(out ac, 0); if (0 == hr) { hr = ac.UninstallAssembly(0, assemblyName, IntPtr.Zero, out position); if (position == 3 /*IASSEMBLYCACHE_UNINSTALL_DISPOSITION_ALREADY_UNINSTALLED*/) { return false; } } if (0 != hr) { throw new Exception(SR.GetString(SR.Failed_gac_uninstall)); } return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System.Web.Configuration; using System.Runtime.InteropServices; using System.Security.Permissions; /* class for installing ASP.BrowserCapabilitiesFactory into gac */ internal sealed class GacUtil : IGac { [SecurityPermission(SecurityAction.Demand, UnmanagedCode = true)] public void GacInstall(string assemblyPath) { #if !FEATURE_PAL IAssemblyCache ac = null; int hr = NativeMethods.CreateAssemblyCache(out ac, 0); if (0 == hr) hr = ac.InstallAssembly(0, assemblyPath, IntPtr.Zero); #else // !FEATURE_PAL int hr = -1; try { Process gacutilprocess = new System.Diagnostics.Process(); if (gacutilprocess != null) { gacutilprocess.StartInfo.CreateNoWindow = true; #if PLATFORM_UNIX gacutilprocess.StartInfo.FileName = "gacutil"; #else gacutilprocess.StartInfo.FileName = "gacutil.exe"; #endif gacutilprocess.StartInfo.UseShellExecute = false; gacutilprocess.StartInfo.Arguments = "/i " + assemblyPath; gacutilprocess.Start(); while (!gacutilprocess.HasExited) { Thread.Sleep(250); } hr = gacutilprocess.ExitCode; } } catch (Exception) { hr = -1; } #endif // FEATURE_PAL if (0 != hr) { throw new Exception(SR.GetString(SR.Failed_gac_install)); } } [SecurityPermission(SecurityAction.Demand, UnmanagedCode = true)] public bool GacUnInstall(string assemblyName) { IAssemblyCache ac = null; uint position = 0; int hr = NativeMethods.CreateAssemblyCache(out ac, 0); if (0 == hr) { hr = ac.UninstallAssembly(0, assemblyName, IntPtr.Zero, out position); if (position == 3 /*IASSEMBLYCACHE_UNINSTALL_DISPOSITION_ALREADY_UNINSTALLED*/) { return false; } } if (0 != hr) { throw new Exception(SR.GetString(SR.Failed_gac_uninstall)); } return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TargetParameterCountException.cs
- SecurityKeyType.cs
- cache.cs
- SqlConnectionPoolGroupProviderInfo.cs
- CodeIdentifiers.cs
- StateManagedCollection.cs
- XPathNodeHelper.cs
- Constants.cs
- TypeConverter.cs
- ContractComponent.cs
- MaskedTextProvider.cs
- ListSortDescription.cs
- StreamGeometry.cs
- SecurityState.cs
- RelationshipWrapper.cs
- PageAsyncTask.cs
- WebDescriptionAttribute.cs
- WindowsPrincipal.cs
- Int32CollectionValueSerializer.cs
- WizardPanelChangingEventArgs.cs
- RSAPKCS1KeyExchangeFormatter.cs
- TrustSection.cs
- BufferAllocator.cs
- ProgressChangedEventArgs.cs
- RectangleConverter.cs
- CodeTypeMemberCollection.cs
- EntityDataSourceStatementEditorForm.cs
- PerformanceCountersElement.cs
- LocatorManager.cs
- ObjectPersistData.cs
- SqlErrorCollection.cs
- DelegatingTypeDescriptionProvider.cs
- Byte.cs
- DataGridViewCellConverter.cs
- CodeAttributeArgumentCollection.cs
- CollectionViewGroupRoot.cs
- xsdvalidator.cs
- DataServiceRequest.cs
- GatewayIPAddressInformationCollection.cs
- XamlTemplateSerializer.cs
- GetTokenRequest.cs
- DPCustomTypeDescriptor.cs
- ManagementInstaller.cs
- DispatcherSynchronizationContext.cs
- UiaCoreProviderApi.cs
- SecurityDescriptor.cs
- XmlCharCheckingReader.cs
- ClientScriptManager.cs
- BuildProviderAppliesToAttribute.cs
- ImageListUtils.cs
- TextHidden.cs
- SelectionChangedEventArgs.cs
- MethodSet.cs
- UIElementHelper.cs
- MissingManifestResourceException.cs
- SpeechAudioFormatInfo.cs
- DirectoryNotFoundException.cs
- EventQueueState.cs
- InvocationExpression.cs
- CompositeDataBoundControl.cs
- NumericExpr.cs
- WSHttpBindingBaseElement.cs
- HtmlTableCellCollection.cs
- Context.cs
- TableFieldsEditor.cs
- ThrowHelper.cs
- isolationinterop.cs
- RSACryptoServiceProvider.cs
- RadioButtonAutomationPeer.cs
- COM2Properties.cs
- RadioButtonList.cs
- HtmlHistory.cs
- recordstatescratchpad.cs
- FormsAuthenticationUserCollection.cs
- TransformationRules.cs
- TextContainerHelper.cs
- xmlglyphRunInfo.cs
- CheckBox.cs
- WeakReadOnlyCollection.cs
- WebPartEditVerb.cs
- xmlglyphRunInfo.cs
- dtdvalidator.cs
- KeyEvent.cs
- TypeConverterHelper.cs
- MessageFormatterConverter.cs
- RTTypeWrapper.cs
- BaseCodePageEncoding.cs
- PasswordRecovery.cs
- ProtocolsInstallComponent.cs
- ListSortDescription.cs
- ForceCopyBuildProvider.cs
- ConcatQueryOperator.cs
- altserialization.cs
- OdbcInfoMessageEvent.cs
- NominalTypeEliminator.cs
- AnonymousIdentificationSection.cs
- OdbcEnvironmentHandle.cs
- XmlNamespaceMapping.cs
- TextModifier.cs
- ProtocolsConfiguration.cs