2015-10-06 4 views
1

У меня есть решение с некоторыми библиотеками классов, которые используются в нескольких других проектах. Когда я делаю Install-Package из VS, он принимает $(SolutionDir)\packages\ и переводит это в относительный путь, например ..\packages\. Затем он сохраняется в файлах .csproj.

Моя проблема заключается в том, что эти файлы .csproj используются в разных местах с разными иерархиями файлов, что означает, что ..\packages\ не укажет на $(SolutionDir)\packages\ в некоторых других решениях. Итак, вопрос в том, как я могу написать $(SolutionDir)\packages\ в файлы .csproj вместо ..\packages\?

ответ

1

Вы не можете заставить NuGet писать $ (SolutionDir) \ пакеты в файлы проекта. Вам нужно будет изменить его исходный код.

Что предлагает NuGet - это способ для нескольких решений по общему каталогу общих пакетов, определяя этот каталог в NuGet.Config file.

<configuration> 
    <config> 
    <add key="repositoryPath" value="SomeDirectory\Packages" /> 
    </config> 
</configuration> 

Вы можете поместить этот файл NuGet.config в каталоге, который является общим родительским решениям, а затем NuGet будет найти его и использовать его для решения.

0

Одна вещь, которую можно использовать, заключается в том, что вы держите все свои решения на одном уровне. Таким образом, папка пакетов будет одинаковой для всех решений/проектов.