Программа удаления Inno Setup не удаляет сборку из GAC - PullRequest
2 голосов
/ 14 марта 2012

Установщик успешно устанавливает сборку в GAC. Однако деинсталлятор сохраняет сборку в GAC.

Я что-то упустил? Я действительно не хочу использовать gacutil.exe для удаления сборки при удалении.

Source: "..\TestHelperInject\bin\x86\Release\TestHelperInject.dll"; DestDir: "{app}"; Flags: gacinstall sharedfile uninsnosharedfileprompt; StrongAssemblyName: "TestHelperInject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ccbe9854a3cee58d, processorArchitecture=x86"

Обновление: ОК, поэтому удаление сборки из GAC во время удаления работает на WinXP, но не на Win7.

Ответы [ 3 ]

2 голосов
/ 14 марта 2012

Из документации Inno Setup документация :

gacinstall

Установите файл в глобальный кэш сборок .NET.При использовании в сочетании с sharedfile файл будет удален только тогда, когда счетчик ссылок достигнет нуля.

Для удаления файла Программа удаления использует строгое имя сборки, указанное параметром StrongAssemblyName.

Будет сгенерировано исключение, если будет предпринята попытка использовать этот флаг в системе без .NET Framework.

Таким образом, кажется, что Inno Setup обрабатывает удаление для вас.

0 голосов
/ 05 июня 2012

Возможно, «ProcessArchitecture = x86» в строгом имени является проблемой. Работает ли это, если вы измените его на «ProcessorArchitecture = MSIL»?

(Это была подсказка, которую я взял с http://odd -staff.blogspot.com.au / 2010/04 / well.html )

0 голосов
/ 23 марта 2012

Если он не удаляется, значит, он либо помечен как используемый / общий (см. Флаг sharedfile), либо StrongAssemblyName неверен. Обратите внимание, что для Inno требуется только указать StrongAssemblyName, но это не является правильным или действительным.

Попробуйте запустить удаление с параметром /log, чтобы увидеть, что он сообщает во время удаления.

...