Как заставить сборку удалить из GAC? - PullRequest
1 голос
/ 12 января 2012

Я разработал простой установочный пакет с использованием WiX, который устанавливает сборку с именем WBRT.Configuration в глобальный кэш сборок (GAC).Пока файл устанавливается, он не удаляется при удалении пакета.

Я попытался запустить командную строку от имени администратора, использовал msiexec / x, указав имя файла msi, и msiexec / x, указав код продукта.

С переключателем / l * v ошибки нет:

Executing op: ActionStart(Name=MsiUnpublishAssemblies,Description=Unpublishing assembly information,Template=Application Context:[1], Assembly Name:[2]) Executing op: AssemblyUnpublish(,,AssemblyType=1,,AssemblyName=WBRT.Configuration,version="1.0.0.0",culture="neutral",publicKeyToken="361AD75BADC53912",processorArchitecture="MSIL",Descriptor=2-(xWui~z@UnhQuo-~Gh>S.OwM9Kim9x0ul%Ore=9) Executing op: ActionStart(Name=UnpublishFeatures,Description=Unpublishing Product Features,Template=Feature: [1])

Элемент WiX File

<File Id="filB7155C3E9A241BEAFE09533364964732" KeyPath="yes" Assembly=".net" Source="$(var.Configuration.TargetDir)\WBRT.Configuration.dll" />

Таблица MsiAssemblyName в Orca

MSIAssemblyName

Файл в GAC

File in GAC

Вкладка версии файла в GAC

Version

Я полностью в тупик .У кого-нибудь есть идеи?

Ответы [ 2 ]

1 голос
/ 24 февраля 2018

Я выполнил шаги, указанные в @ Mohsen , удалил запись реестра и удалил DLL из GAC, чтобы решить проблему конфликта.

[HKLM \ SOFTWARE \ Classes \ Installer \ Assemblies \ Global] и запустите gacutil / u dllname -And успеха.Я не знаю, что является побочным эффектом.Это сработало для меня, затем я запустил

gacutil -u dllThatIWantedToRemove

1 голос
/ 12 января 2012

Во-первых, убедитесь, что ваша сборка не заблокирована другим процессом с помощью gacutil.exe

gacutil /u WBRT.Configuration

Если с вышеизложенным все в порядке, убедитесь, что у родительского контейнера файла нет постоянного флага - Permanent="no"

<Component Shared="yes" Permanent="no" Guid="PUT-GUID-HERE" >
    <File Id="filB7155C3E9A241BEAFE09533364964732" KeyPath="yes" Assembly=".net" 
       Source="$(var.Configuration.TargetDir)\WBRT.Configuration.dll" />
</Component>
...