如何排除ASP.NET Core中的项目依赖关系?
问题描述:
在我使用ASP.NET Core 2.0的解决方案中,我有三个项目:A,B和C.我期望的项目依赖关系的行为是A依赖于B,B依赖于C和C来没有依赖关系。如何排除ASP.NET Core中的项目依赖关系?
在ASP.NET MVC 5中,通过将A设置为引用B和B以引用C可以轻松实现。但是在Core中,当项目依赖于另一个项目时,它也继承了该项目的所有依赖项。在这种情况下,这意味着A继承了B对C的依赖关系。这种依赖关系可以在Visual Studio的解决方案资源管理器中看到:。
我想要A取决于B,但没有B的依赖关系,如下所示:。
有谁知道如何通过Visual Studio或.csproj文件来完成我想要的行为?谢谢!
答
我想通了。
为了项目A引用B和B到参考C,但A至不参考C,I加入到PrivateAssets="All"
B的ProjectReference至C,如下所示:
在B.csproj
<ItemGroup>
<ProjectReference Include="..\C\C.csproj" PrivateAssets="All" />
</ItemGroup>
此设置使C'S参考私人所以它只存在内B.现在预测,参考B将不再还引用了C.
不是2.0的新功能之一,当您构建项目的释放版本时,仅使用它的依赖关系被引用?虽然我不确定它是否能完全解决您的问题,但您可以研究这是如何工作的。 –
@JohanHerstad谢谢,我已经看过这个,但不认为它会解决我的问题。我想以这种方式设置我的项目的最大原因之一是,它将永远不会建议**在“显示潜在修复程序”中使用ProjectC **语句。这将使任何在A项目上工作的开发人员无法意外地引用项目C. –