簡體   English   中英

如何在 ASP.NET Core 中排除項目依賴項?

[英]How do I exclude project dependencies in ASP.NET Core?

在我使用 ASP.NET Core 2.0 的解決方案中,我有三個項目:A、B 和 C。我希望項目依賴項的行為是 A 依賴 B,B 依賴 C,C 沒有依賴項。

在 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,我將PrivateAssets="All"添加到 B 的 ProjectReference 到 C,如下所示:

在 B.csproj

<ItemGroup>
  <ProjectReference Include="..\C\C.csproj" PrivateAssets="All" />
</ItemGroup>

此設置使 C 的引用私有,因此它僅存在於 B 中。現在引用 B 的項目將不再引用 C。

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

如果您想要與 .NET Framework 和 ASP.NET MVC 5 項目中相同的行為,那么您可以在根文件夾中創建此Directory.Build.props文件。

<Project>
  <PropertyGroup>    
    <DisableTransitiveProjectReferences>true</DisableTransitiveProjectReferences>
  </PropertyGroup>
</Project>

如果你想要更詳細的解釋,你可以閱讀我對類似問題的其他回答

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM