Вот пример структуры проекта:
{ ProjectA }
{ packages } <-- packages are created here
{ ProjectA }
- ProjectA.csproj <-- references ProjectB and C.
- packages.config
- ProjectA.sln <-- contains all projects: A, B and C.
{ ProjectB }
- ProjectB.csproj
- packages.config
{ ProjectC }
- ProjectC.csproj
- packages.config
*{ packages} <-- *When I manually paste packages here. So one level above ProjectB.csproj file, then ProjectB compiles.
Решение ProjectA имеет все три проекта: A, B и C. ProjectA - ссылка ProjectB и ProjectC.
Когда я компилирую ProjectA (проекты B и C также компилируются), все пакеты nuget загружаются в папку {packages} на том же уровне, что и файл решения. Проблема в том, что ProjectB не компилируется. Да ... только ProejctB. Я даже не собираюсь исследовать, почему компилируется только один проект, хотя их конфигурация точно такая же. Так или иначе ...
Как в ProjectB, так и в C, когда я раскрываю References, dll из nuget видны как отсутствующие (с желтым прямоугольником). Так или иначе, ProjectC компилируется, а ProjectB - нет. В ошибках говорится, что не может найти ссылку, которая явно находится в папке с пакетами.
У меня вопрос, как мне запрограммировать / настроить эту отправку (код psuedo):
"Уважаемый ProejctB! Пожалуйста, найдите ссылки в папке пакета, созданные на том же уровне, что и файл решения. Файл решения, который пытается скомпилировать вас прямо сейчас. Спасибо"
PS. Технически, путь к dll (ссылка) будет довольно динамичным. Это изменится в зависимости от того, какой файл решения открывает / компилирует проект. Возможно ли это?