public static UninstallResult UninstallAssembly(AssemblyName assemblyName, InstallReference reference) { if (assemblyName == null) { throw new ArgumentNullException(nameof(assemblyName)); } if (!assemblyName.IsFullyQualified()) { throw new ArgumentOutOfRangeException(nameof(assemblyName), assemblyName, "Must be a fully qualified assembly name"); } FusionInstallReference fusionReference = null; if (reference != null) { if (!reference.CanBeUsed()) { throw new ArgumentException("InstallReferenceType can not be used", nameof(reference)); } fusionReference = new FusionInstallReference(reference.Type, reference.Identifier, reference.Description); } var assemblyCache = GetAssemblyCache(); ComCheck(assemblyCache.UninstallAssembly(0, assemblyName.GetFullyQualifiedName(), fusionReference, out var disposition)); return((UninstallResult)disposition); }
public static void InstallAssembly(string path, InstallReference reference, bool force) { if (path == null) { throw new ArgumentNullException(nameof(path)); } AssemblyCommitFlags flags; flags = force ? AssemblyCommitFlags.ForceRefresh : AssemblyCommitFlags.Refresh; FusionInstallReference fusionReference = null; if (reference != null) { if (!reference.CanBeUsed()) { throw new ArgumentException("InstallReferenceType can not be used", nameof(reference)); } fusionReference = new FusionInstallReference(reference.Type, reference.Identifier, reference.Description); } var assemblyCache = GetAssemblyCache(); ComCheck(assemblyCache.InstallAssembly((int)flags, path, fusionReference)); }