У меня есть 3 решения, которые
* Решения 1004 *
Раствор А
Project A1
- это проект расширения для классов System.Data.SqlClient (.NET Standard 2.0)
Раствор B
Project B1
- это библиотека, используемая для управления некоторыми экземплярами (.NET Standard 1.0)
Project B2
- это библиотека, используемая для управления экземплярами с расширенным System.Data.SqlClient до Project A1
(.NET Standard 2.0)
Раствор С
Project C1
библиотека зависит от A1
и B1
(.NET Standard 2.0)
Project C2
- это тест NUnit, зависит от всех проектов выше (.NET Core 2.2)
Файловая структура
Решения / Проекты импортируются через подмодули Git, структура которых представлена ниже:
- \
--- \Solution C
------ \Project C1
------ \submodules
--------- \Solution A
------------ Project A1
--------- \Solution B
------------ \Project B1
------------ \Project B2
------------ \submodules
--------------- \Solution A
------------------ \Project A1
Выпуск
Хотя я использую Visual Studio для открытия Solution C
и компиляции проектов внутри, результаты различны: ( note : я не включил \Solution C\submodules\Solution B\submodules\Solution A\Project A1
в решение, поскольку VS не позволяет 2 проекта с тем же именем)
- Проект А1: хорошо
- Проект B1: хорошо
- Проект B2: не в порядке
- Проект C1: хорошо
- Проект C2: не в порядке
VS всегда говорил, что Project B2
не может найти Project A1
(путь \Solution C\submodules\Solution B\submodules\Solution A\Project A1
), если я не нажму правой кнопкой мыши на Project A1
и не выберу «clean», а затем перестрою Project B2
(«clean is must»), ниже приведено сообщение:
Error NU1105 Unable to find project information for '\Solution C\submodules\Solution B\submodules\Solution A\Project A.csproj'. Inside Visual Studio, this may be because the project is unloaded or not part of current solution. Otherwise the project file may be invalid or missing targets required for restore.
Однако я попытался клонировать только Solution B
на новую позицию (с подмодулями Solution A
), и его можно скомпилировать и запустить как положено.
Угадывает
- Как предполагает @jessehouwing, это может быть не проблема Git, а Visual Studio, я думаю, это из-за того, что VS компилирует проекты с 2-й версией
Project A1
, в то время как я уже потратил часы, чтобы обеспечить Solution B
и Solution C
загружено Solution A
из той же ветки и версии.
Обновление
Guids
Project A
из Solution A
: FD9834ED-3C94-4445-AE15-DFF0F5C42656
Project A
из Solution A
с папкой подмодулей Solution B
: FD9834ED-3C94-4445-AE15-DFF0F5C42656
Project A
из Solution A
: E0FEC3C6-42AB-47D9-912A-40B3C5D2BA66
Project A
из Solution C
: 2A7E2981-87F6-40A5-86F4-D523EC1F68DB
Любая помощь будет оценена