0

在我使用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文件來完成我想要的行爲?謝謝!

+0

不是2.0的新功能之一,當您構建項目的釋放版本時,僅使用它的依賴關係被引用?雖然我不確定它是否能完全解決您的問題,但您可以研究這是如何工作的。 –

+0

@JohanHerstad謝謝,我已經看過這個,但不認爲它會解決我的問題。我想以這種方式設置我的項目的最大原因之一是,它將永遠不會建議**在「顯示潛在修復程序」中使用ProjectC **語句。這將使任何在A項目上工作的開發人員無法意外地引用項目C. –

回答

0

我想通了。

爲了項目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.

來源:https://github.com/dotnet/project-system/issues/2313