簡體   English   中英

ASP.NET 項目中的可傳遞 SDK 項目引用

[英]Transitive SDK project references in ASP.NET projects

我正在嘗試在解決方案中遷移各種 C# 庫項目以使用新的SDK (VS2017+) 格式 該解決方案還包含幾個需要引用這些庫的 ASP.NET 項目。

我知道此時我無法更新 ASP.NET 項目以使用新的基於 SDK 的構建系統,但我已將它們修改為使用<PackageReference/>條目而不是頂部的packages.config文件級 NuGet 引用。

解決方案中有多個依賴場景,類似如下:

ASP.NET Project
  --> Top.Level.Package (NuGet)
  --> Project A (csproj)
    --> Some.Package (NuGet)
    --> Project C (csproj)
      --> Some.Other.Package (NuGet)
  --> Project B (csproj)
    --> Project C (csproj)
      --> Some.Other.Package (NuGet)

即一個 ASP.NET 項目引用一個頂級 NuGet 包,項目 A 和項目 B; 項目 A 引用了 NuGet 包和項目 C; 項目B引用項目C; 項目 C 引用了一個 NuGet 包。 所有非 ASP.NET 項目都已修改為使用 NuGet 包引用的<PackageReference/>條目的 SDK 項目,並且所有傳遞依賴項在它們之間流動都沒有任何問題。

我遇到的問題是,當我構建 ASP.NET 應用程序時,MSBuild 正確地將項目 A 和項目 B 的程序集以及來自頂級和可傳遞 NuGet 包引用的程序集復制到bin文件夾中,但它不會復制項目 A 和項目 B 都需要的可傳遞項目 C 的輸出。

除了將 ASP.NET 項目中的頂級項目引用添加到“缺失”項目之外,是否有一種直接的方法可以解決這個問題?

這是因為 ASP.NET 項目不(目前不能)支持 SDK 樣式的項目類型。

SDK 風格的項目主動查詢項目引用以獲得進一步的依賴關系。 由於 ASP.NET 項目不這樣做,您必須自己添加引用。 (或者自己添加所需的 MSBuild 邏輯,如該文件所示- 搜索IncludeTransitiveProjectReferences ,但我不能真正推薦這種方法,因為它可能與 VS 更新沖突)

暫無
暫無

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

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