Настройка нескольких проектов с помощью пакетов Nuget - PullRequest
0 голосов
/ 27 июня 2018

У меня есть решение для Visual Studio, в котором есть два подпроекта, и эти подпроекты используют одни и те же пакеты nuget. У меня многолетний опыт работы с проектами на C ++, но я все еще относительно новичок в мире .net и пакетах nuget. Я одновременно пытаюсь достичь следующих целей.

  1. Поместите мой мастер-файл решения в корневую папку проектов (см. Структуру каталога ниже)
  2. Содержит каждый подпроект (включая файл .csproj) в своих собственных подпапках
  3. Имейте только одно местоположение, которое содержит список всех пакетов. Мне не нравится иметь копии одного и того же файла packages.config в каждой подпапке. Хотелось бы иметь только один, скажем, на уровне файла Master.sln, поскольку во всех проектах используются одни и те же пакеты, и я хочу убедиться, что они используют одинаковые версии одинаковых пакетов.
    • Я также заметил, что файлы .csproj содержат копию того, что находится в файле packages.config. Есть ли способ, чтобы список пакетов был только в одном месте без копий? Как ТОЛЬКО в файле packages.config, а не в файле .csproj?

Вот моя структура каталогов проекта

{projects root}
    Master.sln
    packages.config {is it possible for this file to be at this level}
    Proj1
        Proj1.sln {do not want solution at this level}
        Proj1.csproj
        Program.cs
        packages.config {do not want at this level}
    Proj2
        Proj2.sln {do not want solution at this level}
        Proj2.csproj
        Program.cs
        packages.config {do not want at this level}

В настоящий момент, если я скомпилирую в VisualStudio файлы Proj1.sln или Proj2.sln, папка «packages» будет создана и проект скомпилируется правильно. Однако если я открою Master.sln (который содержит два подпроекта) и скомпилирую, то папка «packages» создается на том же уровне, что и файл Master.sln, но проекты не собираются, я предполагаю потому что они не могут найти посылки.

Любая помощь по этому вопросу будет принята.

1 Ответ

0 голосов
/ 28 июня 2018

Настройка нескольких проектов с пакетами Nuget

Боюсь, вам нужно скопировать один и тот же файл packages.config в каждую подпапку, потому что команда NuGet устарела для пакетов уровня решения в NuGet 3.0 :

https://github.com/NuGet/Home/issues/522

И версия Nuget по умолчанию для Visual Studio 2017: 4.0 и выше.

Таким образом, вы не можете иметь только один файл packages.config на уровне файла Master.sln.

...