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
- AuthenticatedStream.cs
- XmlTextEncoder.cs
- ResumeStoryboard.cs
- Tile.cs
- ListSourceHelper.cs
- CancelEventArgs.cs
- RenamedEventArgs.cs
- ConnectionOrientedTransportChannelListener.cs
- ButtonFlatAdapter.cs
- ArgIterator.cs
- TCPClient.cs
- GenericUriParser.cs
- FormViewRow.cs
- DataObjectCopyingEventArgs.cs
- XamlPoint3DCollectionSerializer.cs
- SplitterEvent.cs
- ToolStripDropDownMenu.cs
- PowerStatus.cs
- OracleParameterBinding.cs
- HtmlInputHidden.cs
- RuntimeConfig.cs
- PropertyBuilder.cs
- XPathNodeIterator.cs
- ADConnectionHelper.cs
- Point3DAnimationUsingKeyFrames.cs
- ComEventsSink.cs
- Slider.cs
- BindingNavigatorDesigner.cs
- ImageFormatConverter.cs
- EditingScope.cs
- RequestResizeEvent.cs
- WSSecureConversation.cs
- Encoder.cs
- TabControlAutomationPeer.cs
- CodeNamespaceImportCollection.cs
- MultiAsyncResult.cs
- QueryModel.cs
- MemberInfoSerializationHolder.cs
- RegexNode.cs
- DoubleUtil.cs
- EntityDataReader.cs
- ToolStripPanelRenderEventArgs.cs
- TextProperties.cs
- DSASignatureDeformatter.cs
- Command.cs
- GlobalizationAssembly.cs
- NamespaceCollection.cs
- GlobalProxySelection.cs
- ZeroOpNode.cs
- ActivityBindForm.Designer.cs
- SizeConverter.cs
- XmlSchemaSequence.cs
- GridView.cs
- DecoderFallbackWithFailureFlag.cs
- Rect3DValueSerializer.cs
- KeyGesture.cs
- DocumentApplicationState.cs
- SystemIPGlobalProperties.cs
- ThemeableAttribute.cs
- RunWorkerCompletedEventArgs.cs
- HtmlInputReset.cs
- SoapUnknownHeader.cs
- EncoderReplacementFallback.cs
- Timeline.cs
- OleDbTransaction.cs
- DecimalStorage.cs
- SecurityImpersonationBehavior.cs
- ValidatorCollection.cs
- ExecutionContext.cs
- HyperLinkColumn.cs
- DesignerActionItem.cs
- TextDecorationLocationValidation.cs
- SecondaryIndex.cs
- GenericWebPart.cs
- SerializationBinder.cs
- Math.cs
- QueryCacheEntry.cs
- Sequence.cs
- CustomErrorsSectionWrapper.cs
- PageVisual.cs
- SrgsSubset.cs
- ReachFixedPageSerializerAsync.cs
- DependencyPropertyDescriptor.cs
- BmpBitmapDecoder.cs
- ScriptingJsonSerializationSection.cs
- CodeAttributeDeclaration.cs
- PointCollectionConverter.cs
- WorkflowIdleBehavior.cs
- BaseComponentEditor.cs
- Tablet.cs
- SqlDelegatedTransaction.cs
- Rect3D.cs
- XmlWriter.cs
- WsdlInspector.cs
- WindowsSecurityToken.cs
- cookiecontainer.cs
- ProxyHwnd.cs
- Evaluator.cs
- CultureSpecificCharacterBufferRange.cs
- DispatcherFrame.cs