У меня есть решение для Visual Studio, в котором есть два подпроекта, и эти подпроекты используют одни и те же пакеты nuget. У меня многолетний опыт работы с проектами на C ++, но я все еще относительно новичок в мире .net и пакетах nuget. Я одновременно пытаюсь достичь следующих целей.
- Поместите мой мастер-файл решения в корневую папку проектов (см. Структуру каталога ниже)
- Содержит каждый подпроект (включая файл .csproj) в своих собственных подпапках
- Имейте только одно местоположение, которое содержит список всех пакетов. Мне не нравится иметь копии одного и того же файла 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, но проекты не собираются, я предполагаю потому что они не могут найти посылки.
Любая помощь по этому вопросу будет принята.