На компьютере с Windows Server 2012 файл MSI установил сборку ABCD.dll в GAC_32. Я пытаюсь исправить этот файл с WindowsPowerShell, со следующими командами:Установка и удаление сборок в GAC с помощью WindowsPowerShell
[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
$publish = New-Object System.EnterpriseServices.Internal.Publish
$publish.GacRemove("C:\Windows\Microsoft.NET\assembly\GAC_32\ABCD\v4.0_1.0.0.0__8a93b7fd09f0e7e7\ABCD.dll")
$publish.GacInstall("C:\Patch1\ABCD.dll")
Однако команда GacRemove терпит неудачу. В журнале событий Windows/приложении я получаю следующее сообщение:
Сбой сборки сборки из кэша глобальной сборки: C: \ Windows \ Microsoft.NET \ assembly \ GAC_32 \ ABCD \ v4.0_1.0.0.0__8a93b7fd09f0e7e7 \ ABCD.dll ABCD, Version = 1.0.0.0
Есть ли у кого-то идеи, в чем причина?
Я также попытался использовать 32-разрядную (C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ powershell.exe), а также 64-разрядную (C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell. exe) WindowsPowershell в режиме администратора.
gacutil также не работает. Я стараюсь следующее:
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools\gacutil" -u ABCD.dll
и получить следующее сообщение:
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
No assemblies found matching: ABCD.dll
Number of assemblies uninstalled = 0
Number of failures = 0
Однако, когда я получаю список сборок с
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools\gacutil" -l
Я вижу следующую строку:
ABCD, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8a93b7fd09f0e7e7, processorArchitecture=x86