Я могу установить через gacutil, но не удалять одну и ту же dll
Я установил DLL, используя gacutil.
gacutil.exe /i SI.ArchiveService.CommonLogic.Exceptions.dll
Использование gacutil/l показывает, что оно действительно установлено.
SI.ArchiveService.CommonLogic.Exceptions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=925c8734ae397609, processorArchitecture=MSIL
Затем я захотел удалить его.
gacutil.exe /u SI.ArchiveService.CommonLogic.Exceptions.dll
Microsoft (R) .NET Global Assembly Cache Utility. Version 3.5.30729.1
Copyright (c) Microsoft Corporation. All rights reserved.
No assemblies found matching: SI.ArchiveService.CommonLogic.Exceptions.dll
Number of assemblies uninstalled = 0
Number of failures = 0
Почему это не работает? Как его удалить?
Ответы
Ответ 1
Для установки сборки требуется имя пути к DLL. Для удаления требуется отображаемое имя сборки. Они не должны напоминать друг друга. Просмотрите свойство Assembly.FullName
. gacutil.exe /l
(ell как в списке) получает список отображаемых имен.
Ответ 2
Nevermind.
gacutil.exe /u SI.ArchiveService.CommonLogic.Exceptions
Сделал работу. Также, перейдя на C:\WINDOWS\assembly, щелкните его правой кнопкой мыши, а затем выберите uninstall, сделайте это. Я понял это, посмотрев его свойства, и имя было без расширения dll.
Ответ 3
Это немного безопаснее, если у вас есть несколько сборок с тем же отображаемым именем в GAC
gactutil.exe /u myDll,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
Ответ 4
Пришел сюда, когда нашел ответ, но не получил полностью.
то, что вам действительно нужно сделать, это использовать двойные кавычки "Assemblyname", окружающие полное имя сборки i.e
"YOURDLNNAME, Версия = 6.3.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35"
Завершите процесс, перейдите к этому пути с помощью командной строки: C:\Program Files (x86)\Microsoft SDK\Windows\v8.0A\bin\NETFX 4.0 Tools
и запустите запрос: gactuil.exe/u "YOURDLLNAME, Version = 6.3.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35"
Надеюсь, что это поможет кому-то