Я повторю свой комментарий выше здесь, так как он считается действительным как ответ.
Журнал MSBuild
, с выходной подробностью сборки, установленной на уровень detailed
, дает больше информации о том, что происходит.
Сценарий 1 (A, ссылающийся на B, B, ссылающийся на C)
Журнал сборки показывает, что проект A успешно разрешил свою System.Data.SqlClient
зависимость из папки \bin\debug
проекта B и копирует ее локально.
(Поскольку проект B является библиотекой классов .NET Framework, его зависимости NuGet копируются в его папку bin
.)
Dependency "System.Data.SqlClient, Version=4.5.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Resolved file path is "C:\...\TestDependencyFlows.Library\bin\Debug\System.Data.SqlClient.dll".
Сценарий 2 (A, ссылающийся на B и C, B, ссылающийся на C)
В журнале сборки упоминается, что проект A пытается разрешить свою зависимость System.Data.SqlClient
отNET Standard
проект C (и некоторые известные папки), но больше не из проекта B.
(Поскольку проект C является проектом NET Standard
, он не копирует свои NuGet
зависимости в его bin
folder.)
Все эти попытки завершаются неудачно с сообщением, что файл dих нет в этих местах.
Dependency "System.Data.SqlClient, Version=4.5.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Could not resolve this reference. Could not locate the assembly "System.Data.SqlClient, Version=4.5.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
For SearchPath "C:\...\TestDependencyFlows.Library.NetStandard\bin\Debug\netstandard2.0".
Considered "C:\...\TestDependencyFlows.Library.NetStandard\bin\Debug\netstandard2.0\System.Data.SqlClient.winmd", but it didn't exist.
Considered "C:\...\TTestDependencyFlows.Library.NetStandard\bin\Debug\netstandard2.0\System.Data.SqlClient.dll", but it didn't exist.
Considered "C:\...\TestDependencyFlows.Library.NetStandard\bin\Debug\netstandard2.0\System.Data.SqlClient.exe", but it didn't exist.
...
Решением может быть добавление пакета NuGet System.Data.SqlClient
также в проект A.