创建这样的项目布局。
装配A->装配B->装配C。
程序存在于程序集A中。 ClassB居住在Assembly B中。 ClassC生活在程序集C中。
我不希望在AssemblyA中直接访问AssemblyC。因此,我在AssemblyB.csproj文件的ProjectReference元素中添加了PrivateAssets =“ All”。
在ClassC中,我需要使用程序集A或B不需要的NuGet包(让我们说Newtonsoft.Json 12.0.2)。
该项目将引发System.IO.FileNotFoundException:如果我也不将Newtonsoft.Json包也添加到启动项目A中,则在运行时无法加载文件或程序集“ Newtonsoft.Json”错误。在那里不需要它。
这是预期的行为吗?我想念什么吗?
我还在dotNet / cli页面上提出了一个问题:https://github.com/dotnet/cli/issues/12615。
此外,这是我在GitHub上发布的一个演示:https://github.com/TestSubject09/netCoreIssueDemo1。