0

Я клонировал git-репозиторий, содержащий проект VS, ссылающийся на Json.Net как пакет Nuget. Эта ссылка отображается в виде:Возможно ли переопределить пути подсказок Nuget в файлах проектов Visual Studio?

<HintPath>..\..\..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> 

У меня есть хранилище клонированный (наряду со всеми другими моими Git репозиториев) в D:\Repos.

Как вы можете видеть, нет возможного способа, чтобы мои пакеты устанавливали 3 каталога над этим.

Используя переменную окружения (NUGET_PACKAGES) или packages.config файл не представляется переопределения относительные пути, которые получают жесткий запеченный в файлы проекта по установке пакета.

Хотя этот точный экземпляр можно решить, захороня эту конкретную репо 3 папки глубже в файловой системе, это не решение проблемы.

Можно ли сообщить Visual Studio игнорировать указанные автором HintPath s в пользу определенного пользователем пути?

ответ

0

Вы не можете отключить подсказки при добавлении пакетов NuGet, если вы используете файл package.config.

Я бы посмотрел на файл NuGet.Config рядом с решением и использовал параметр repositoryPath, чтобы определить, где вы хотите, чтобы пакеты были.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <config> 
    <add key="repositoryPath" value="../MyPackages" /> 
    </config> 
</configuration> 

Другой вариант - использовать файл project.json, хотя в какой-то момент этот файл будет исчезать. Использование файла project.json означает, что у вас нет никаких путей подсказки, хранящихся в вашем файле .csproj. Собрания разрешаются во время сборки.

+0

Это не мой репозиторий, поэтому я не могу его изменить. Можно было бы подумать, что моя собственная локальная копия конфигурации с полем «repositoryPath» переопределит HintPaths, но нет ... видимо, это было бы слишком удобно. Кажется, вся система была разработана для борьбы с программным обеспечением с открытым исходным кодом или чего-то еще. –

+0

Вы можете поместить файл NuGet.Config в каталог вне репозитория. NuGet пойдет вверх по дереву каталогов, пока не найдет файл NuGet.Config. Однако, если вы не можете изменить файлы .csproj, если они находятся в другом хранилище, я не уверен, что вы можете что-либо сделать. Они всегда будут ссылаться на каталог других пакетов. –

+0

Итак, нет решения? Это просто выходит за рамки возможностей nuget или решений Visual Studio в целом? –

Смежные вопросы