Src/Pscx.Core/Interop/Fusion/IAssemblyCache.cs
/// <summary>
/// The IAssemblyCache::UninstallAssembly method removes a reference to an assembly from the GAC. 
/// If other applications hold no other references to the assembly, the files that make up the assembly are removed from the GAC. 
/// </summary>
/// <param name="dwFlags">No flags defined. Must be zero.</param>
/// <param name="pszAssemblyName">The name of the assembly. A zero-ended Unicode string.</param>
/// <param name="pRefData">A pointer to a FUSION_INSTALL_REFERENCE structure. Although this is not recommended, 
///		this parameter can be null. The assembly is installed without an application reference, or all existing application 
///		references are gone.</param>
/// <param name="pulDisposition">Pointer to an integer that indicates the action that is performed by the function.</param>
/// <returns>The return values are defined as follows: 
///		S_OK - The assembly has been uninstalled.
///		S_FALSE - The operation succeeded, but the assembly was not removed from the GAC. 
///		The reason is described in pulDisposition.</returns>
///	<remarks>
///	NOTE: If pulDisposition is not null, pulDisposition contains one of the following values:
///		IASSEMBLYCACHE_UNINSTALL_DISPOSITION_UNINSTALLED - The assembly files have been removed from the GAC.
///		IASSEMBLYCACHE_UNINSTALL_DISPOSITION_STILL_IN_USE - An application is using the assembly. 
///			This value is returned on Microsoft Windows 95 and Microsoft Windows 98.
///		IASSEMBLYCACHE_UNINSTALL_DISPOSITION_ALREADY_UNINSTALLED - The assembly does not exist in the GAC.
///		IASSEMBLYCACHE_UNINSTALL_DISPOSITION_DELETE_PENDING - Not used.
///		IASSEMBLYCACHE_UNINSTALL_DISPOSITION_HAS_INSTALL_REFERENCES - The assembly has not been removed from the GAC because 
///			another application reference exists.
///		IASSEMBLYCACHE_UNINSTALL_DISPOSITION_REFERENCE_NOT_FOUND - The reference that is specified in pRefData is not found 
///			in the GAC.
///	</remarks>
The IAssemblyCache::UninstallAssembly method removes a reference to an assembly from the GAC.
If other applications hold no other references to the assembly, the files that make up the assembly are removed from the GAC.
The IAssemblyCache :: UninstallAssembly method removes a reference to an assembly from the GAC . If other applications hold no other references to the assembly the files that make up the assembly are removed from the GAC .
[PreserveSig]
        int UninstallAssembly(
            uint dwFlags,
            [MarshalAs(UnmanagedType.LPWStr)] string pszAssemblyName,
            [MarshalAs(UnmanagedType.LPArray)] FUSION_INSTALL_REFERENCE[] pRefData,
            out uint pulDisposition);
[ PreserveSig ] int UninstallAssembly ( uint dwFlags , [ MarshalAs ( UnmanagedType . LPWStr ) ] string pszAssemblyName , [ MarshalAs ( UnmanagedType . LPArray ) ] FUSION_INSTALL_REFERENCE [ ] pRefData , out uint pulDisposition ) ;
The IAssemblyCache::UninstallAssembly method removes a reference to an assembly from the GAC.
The IAssemblyCache :: UninstallAssembly method removes a reference to an assembly from the GAC .
The return values are defined as follows:
S_OK - The assembly has been uninstalled.
S_FALSE - The operation succeeded, but the assembly was not removed from the GAC.
The reason is described in pulDisposition.
The return values are defined as follows : S_OK - The assembly has been uninstalled . S_FALSE - The operation succeeded but the assembly was not removed from the GAC . The reason is described in pulDisposition .
dwFlags
uint
No flags defined. Must be zero.
No flags defined . Must be zero .
string
[MarshalAs(UnmanagedType.LPWStr)]
FUSION_INSTALL_REFERENCE[]
[MarshalAs(UnmanagedType.LPArray)]
uint
out
pszAssemblyName
The name of the assembly. A zero-ended Unicode string.
The name of the assembly . A zero - ended Unicode string .
pRefData
A pointer to a FUSION_INSTALL_REFERENCE structure. Although this is not recommended,
this parameter can be null. The assembly is installed without an application reference, or all existing application
references are gone.
A pointer to a FUSION_INSTALL_REFERENCE structure . Although this is not recommended this parameter can be null . The assembly is installed without an application reference or all existing application references are gone .
pulDisposition
Pointer to an integer that indicates the action that is performed by the function.
Pointer to an integer that indicates the action that is performed by the function .
remarks
If pulDisposition is not null, pulDisposition contains one of the following values:
IASSEMBLYCACHE_UNINSTALL_DISPOSITION_UNINSTALLED - The assembly files have been removed from the GAC.
IASSEMBLYCACHE_UNINSTALL_DISPOSITION_STILL_IN_USE - An application is using the assembly.
This value is returned on Microsoft Windows 95 and Microsoft Windows 98.
IASSEMBLYCACHE_UNINSTALL_DISPOSITION_ALREADY_UNINSTALLED - The assembly does not exist in the GAC.
IASSEMBLYCACHE_UNINSTALL_DISPOSITION_DELETE_PENDING - Not used.
IASSEMBLYCACHE_UNINSTALL_DISPOSITION_HAS_INSTALL_REFERENCES - The assembly has not been removed from the GAC because
another application reference exists.
IASSEMBLYCACHE_UNINSTALL_DISPOSITION_REFERENCE_NOT_FOUND - The reference that is specified in pRefData is not found
in the GAC.
If pulDisposition is not null pulDisposition contains one of the following values : IASSEMBLYCACHE_UNINSTALL_DISPOSITION_UNINSTALLED - The assembly files have been removed from the GAC . IASSEMBLYCACHE_UNINSTALL_DISPOSITION_STILL_IN_USE - An application is using the assembly . This value is returned on Microsoft Windows 95 and Microsoft Windows 98 . IASSEMBLYCACHE_UNINSTALL_DISPOSITION_ALREADY_UNINSTALLED - The assembly does not exist in the GAC . IASSEMBLYCACHE_UNINSTALL_DISPOSITION_DELETE_PENDING - Not used . IASSEMBLYCACHE_UNINSTALL_DISPOSITION_HAS_INSTALL_REFERENCES - The assembly has not been removed from the GAC because another application reference exists . IASSEMBLYCACHE_UNINSTALL_DISPOSITION_REFERENCE_NOT_FOUND - The reference that is specified in pRefData is not found in the GAC .