Ответ 1
Вы можете установить сборки в GAC с помощью PowerShell script из PowerShell GAC, поэтому ваш install.ps1 script может определенно сделайте это.
Однако слово предостережения оправданно; делать это, вероятно, не даст большинству людей такое поведение, которое они хотят. Каждый проект будет использовать сильную ссылку на конкретную версию. Просто потому, что один проект обновляет пакет, это не значит, что другие проекты будут обновлять свои пакеты и не будут использовать более новую версию в GAC - они будут использовать ту, к которой они привязаны, если сборка не содержит политику привязки, определяющую новая версия заменяет старую, и в этом случае версия, которую использует проект, не будет соответствовать версии, которую считает nuget.
Таким образом, может быть очень трудно понять, какая именно версия сборки используется. Обычно вы можете просто посмотреть на установленные пакеты nuget и сразу узнать, что у вас есть.
В моем случае мы используем nuget для хранения двоичных файлов вне Git, но некоторые из двоичных файлов включают конструктор WinForms, который очень сильно разозлится, если сборки не находятся в GAC. У нас были бесконечные проблемы снова и снова, пока мы просто не пустили пулю и не поставили сборки в GAC. Теперь он работает безупречно. Таким образом, мы регистрируем наши собственные пользовательские сборки в GAC через nuget, чтобы он автоматически загружал и регистрировал их, но у нас есть одно решение и гарантировать, что все проекты будут обновляться одновременно.