File: NativeMethods.cs
Web Access
Project: ..\..\..\src\Package\Microsoft.Build.UnGAC\Microsoft.Build.UnGAC.csproj (Microsoft.Build.UnGAC)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System;
using System.Runtime.InteropServices;
 
#nullable disable
 
namespace Microsoft.Build.UnGAC
{
    // See: https://docs.microsoft.com/en-us/dotnet/framework/unmanaged-api/fusion/iassemblycache-interface
    [ComImport]
    [Guid("E707DCDE-D1CD-11D2-BAB9-00C04F8ECEAE")]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    internal interface IAssemblyCache
    {
        [PreserveSig]
        uint UninstallAssembly(uint dwFlags, [MarshalAs(UnmanagedType.LPWStr)] string pszAssemblyName, IntPtr pRefData, ref ulong pulDisposition);
    }
 
    public static class NativeMethods
    {
        [DllImport("fusion.dll")]
        internal static extern uint CreateAssemblyCache(out IAssemblyCache ppAsmCache, int dwReserved);
    }
}