Я использую NuGet для извлечения пакетов из внешних и внутренних источников пакетов, что очень удобно. Но я понял, что пакеты по умолчанию хранятся на одно решение, что очень расстраивает, когда некоторые проекты с ссылками NuGet включены в несколько решений. Затем ссылки заменяются на другую папку пакета решений, которая на самом деле может быть недоступна другой машине разработчика или сборки.
Я видел, что есть способы указать общее местоположение пакета (возможно, на корневом уровне проекта, мы используем контроль источника TFS) с выпуском 2.1 NuGet, см. примечания к выпуску. Я использую NuGet v2.7
Но я попытался добавить файлы nuget.config, не увидев никакого эффекта этого. Пакеты все еще хранятся в папке решения. Я что-то пропустил? Кажется, существуют разные структуры xml node для добавления в файл nuget.config, в зависимости от того, кто отвечает на этот вопрос: Schwarzie предлагает qaru.site/info/54711/...:
<settings>
<repositoryPath>..\..\[relative or absolute path]</repositoryPath>
</settings>
Примечания к выпуску для NuGet 2.1 (см. ссылку выше) предлагает этот формат:
<configuration>
<config>
<add key="repositoryPath" value="..\..\[relative or absolute path]" />
</config>
</configuration>
Я не знаю, какой из них, или любой, или оба будут работать в конце. Я пробовал оба на уровне решения. Может ли файл nuget.config размещаться на корневом уровне проекта TFS или он должен находиться в каталоге решений? Похоже, что NuGet считывает и применяет настройки из этих файлов в определенном порядке, поэтому имеет смысл добавить их на несколько уровней, где файл nuget.config на уровне решения переопределяет один из уровней корня проекта TFS. Можно ли это уточнить?
Нужно ли мне удалять все установленные пакеты до того, как эти ссылки будут работать? Мне бы очень хотелось, если бы кто-то мог предоставить пошаговую инструкцию для перехода от решения nuget к конкретному решению к общей папке пакета, где проекты, принадлежащие нескольким решениям, могут найти необходимые пакеты nuget.