Мне нужно развернуть несколько сборок в GAC. У меня было несколько вопросов о (моем) понимании GAC. действительно меня смущает.GAC и Assembly Versioning
Я хочу знать, какие версии изменить версию сборки и файла. Каковы возможные комбинации, в которых dll GAC будет заменена установкой приложения. и базовое управление файлами GAC.
Я объясню мой вопрос, используя следующий пример для лучшего понимания GAC:
Пусть я есть продукты А и В.
И A, и B ссылаются на файл myfile.dll, установленный в GAC.
(я) версия сборки: [1.0.0.0]
(II) версия сборки файла: [2.0.0.0] (намеренно отличается, чтобы избежать путаницы больше)
Предположим, что у меня есть исправление ошибки, которая применяется в myfile.dll. Тогда какую версию я должен изменить?
Предположим, у меня есть новая версия A, скажем, «ANEW». Затем какую версию следует изменить так, чтобы оба A, B ANEW могут находиться рядом друг с другом.
Предположим, что если у меня есть «A», установленный с myfile.dll, присутствующим в GAC, и теперь я пытаюсь установить «B», в котором есть gac-dll с исправлениями ошибок. Затем какие версии изменяются, чтобы изменения отражались в ' А».
То же, что и Q3, но изменение B не должно отражаться в 'A'.
Предположим, что «A» установлен с myfile (1.0.0.0). Теперь предположим, что «B» устанавливает с myfile (1.x.y.z) .. будет ли заменен файл GAC?
Предположим, что «A» установлен с myfile (1.0.0.0). Теперь предположим, что «B» устанавливает с myfile (2.x.y.z) .. будет ли заменен файл GAC?
Предположим, что «A» установлен с myfile (1.0.0.0). Теперь предположим, что «B» устанавливает с myfile (1.0.0.0), предполагая, что версия не изменена. Будет ли заменен файл GAC?
Также как удалены DLL GAC. Есть ли какие-либо критерии для удаления?
Я думаю, что вопросы немного запутывают, но надеюсь, что вы, ребята, знаете, что они спрашивают.
PS: Относящиеся к этой теме net-assembly-dll-sharing-and-deploying
THX для ответа. Я так же нашел эту ссылку http://blogs.msdn.com/junfeng/archive/2004/02/14/72666.aspx «Когда мы видим, что сборка уже существует в GAC, мы пытаемся сравнить версию файла из сборки в GAC (назовем ее «старой» сборкой) и файловой версии сборки, собирающейся установить (и «новую» сборку) .Если версия «новой» сборки меньше, чем «старая» сборка, мы откажемся от установки «новой» сборки, если вы не попросите фьюжн принудительно установить («gacutil -if») ». – Amitd
После этого ответа и некоторых исследований .. я получил ответы ,, thx u :) [a] для бок о бок установка в GAC всегда меняет версию сборки. [b] для исправления ошибок всегда изменяйте версию файла сборки. [c] Более старая версия файла всегда заменяется более новой, если такая же версия сборки. [d] принудительно заменить новую версию файла более старой версией файла (с той же версией сборки) использовать флаг силы в gacutil. – Amitd