Я прочитал несколько постов здесь о GAC и почему вы никогда не должны развертывать приложения, устанавливая общие сборки в GAC. В этом я вижу смысл, поскольку это должно упростить обновление приложений на клиентских машинах.
Тем не менее, есть две области, где я могу увидеть, что GAC полезен для разработки и на сервере сборки.
Например, если вы используете блоки приложений Microsoft, вы вполне можете установить их в GAC и ссылаться на них там. Это имеет смысл, поскольку это легче сделать, чем иметь, и абсолютная ссылка на путь может быть разной на каждой машине разработчика. Это также лучше, чем иметь общий сетевой диск со всеми вашими общими компонентами - там это было сделано.
Тогда вы, вероятно, сделали бы то же самое для своего сервера сборки. Однако единственная проблема, которую я вижу с этим, состоит в том, что у вас есть приложение, которое использует версию 2.0 блоков приложения. Позже вы обновите его до версии 3.1. В какой-то момент вам может понадобиться пересоздать более раннюю версию этого приложения, чтобы протестировать обнаруженную клиентом ошибку, но при повторном создании сборки он будет использовать версию 3.1 блока приложения, а не 2.0, против которой оно изначально было создано. Это правда, или старый файл проекта будет по-прежнему ссылаться на более старую версию DLL, если она находится в GAC?
Что вы думаете / думаете по этому конкретному вопросу?
Я хотел бы иметь возможность распространять все версии совместно используемых компонентов (мы либо загружаем, либо собираем) всем разработчикам в виде MSI, которые устанавливаются в GAC и развертываются как XCOPY как часть установщика приложения на компьютерах клиентов. Это лучший способ сделать это.