Я сейчас работаю с Newtonsoft.Json (a.k.a. Json.net), и несколько решений C # должны ссылаться на него. Кажется, наиболее удобный и широко используемый способ - установить Newtonsoft.Json с менеджером пакетов NuGet. Но я обнаружил, что пакет установлен в корневом каталоге решения (в любом случае, установка основана на данном решении), и его размером нельзя пренебречь (чуть более 10 МБ), поэтому мне интересно, есть ли элегантный способ поделиться этот пакет среди различных решений C #.
Я искал в Google и нашел несколько удовлетворительных результатов (возможно, это потому, что я не выразил свое требование должным образом); Единственный правильный ответ - создать папку .nuget как в каталоге, так и в решении, и заполнить его файлом NuGet.config следующим образом:
Создайте папку .nuget в корне решения (фактически введя «.nuget.»)
Внутри этой папки создайте файл NuGet.config.
В Visual Studio 2015 щелкните правой кнопкой мыши решение и добавьте новый каталог решений с именем «.nuget»
Щелкните правой кнопкой мыши по этой папке и выберите, чтобы добавить существующий файл, и выберите файл NuGet.config, созданный в (2).
Добавьте содержимое в файл NuGet.config следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<config>
<add key="repositoryPath" value="E:\JsonExamples\C#Examples\UseJsonInCSharp\packages" />
</config>
</configuration>
- Перезапустите Visual Studio 2015.
Но это не сработало, потому что директива using
using Newtonsoft.Json;
до сих пор не распознан! Может быть, нужно сделать что-то еще, что мне не известно, но является здравым смыслом для ветеранов? Или, может быть, это потому, что версия Newtonsoft.Json слишком новая, чтобы это работало? Кто-нибудь может мне помочь? Большое спасибо!
Еще одно слово: в настоящее время я использую VS 2017, но я нашел только ответы, связанные с VS 2015, поэтому мне интересно, что предыдущий подход, если каким-то образом работает на VS 2015, когда-нибудь будет работать на VS 2017.