Я унаследовал приложение, использующее Microsoft Enterprise Library. VS-решение приложений содержит около 200 проектов.Как узнать, какое приложение требует определенной сборки от GAC?
Я реструктурировал решение, перемещая проекты и удаляя устаревшие. Мне нужно привести его в порядок, чтобы он был готов для других разработчиков.
Решение содержит DLL-файлы Microsoft Enterprise Library определенной версии, однако, когда я перемещал файлы, я заметил, что некоторые проекты не ссылаются на эти dll, а вместо dll с моего GAC.
Мне нужно убедиться, что это решение не зависит ни от чего другого (в GAC или от другого) или от документа, если это так, так что следующий человек не испытывает неприятного удивления, когда вытаскивает его из источника.
Я попытался удалить DLL Enterprise Library из GAC. Это не удалось, как это:
C:\WINDOWS\system32>gacutil /u Microsoft.Practices.EnterpriseLibrary.Common
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.0
Copyright (c) Microsoft Corporation. All rights reserved.
Assembly: Microsoft.Practices.EnterpriseLibrary.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken=e44a2bc38ed2c13c, processorArchitecture=MSIL
Unable to uninstall: assembly is required by one or more applications
Pending references:
SCHEME: <WINDOWS_INSTALLER> ID: <MSI> DESCRIPTION : <Windows Installer>
Number of assemblies uninstalled = 0
Number of failures = 0
Это сообщение заставляет меня думать, что эта длл ссылается приложение, установленное с установщика Windows (MSI).
В моей машине нет Microsoft Enterprise Library в качестве одного из элементов панели управления/программ и функций.
Как узнать, какой продукт, установленный в MSI, установил DLL в gac?
EDIT: не обман. Другой вопрос задает вопрос о ситуации, когда сборка не показана в GAC проводником процесса, а KB говорит о ситуации, когда сборку нельзя удалить, даже если на нее нет ссылки. Проводник процесса этого другого вопроса не имеет отношения ко мне, так как я не ожидаю, что сборка будет загружаться все время. Ответ kb также не помогает, так как я не хочу удалить сборка. Я хочу узнать, какая программа установлена. Ответ на другой вопрос не отвечает на это (потому что это не то, что там задавали), но, к счастью, я получил ответы на качество здесь.
Возьмите прочитанный на этом https://support.microsoft.com/en-us/kb/873195 –
Возможный дубликат [Невозможно удалить сборку из GAC?] (HTTP : //stackoverflow.com/questions/2447306/unable-to-uninstall-an-assembly-from-gac) –