簡體   English   中英

為什么我的.NET Standard 2.0(多目標)項目對其中一個依賴程序集發出警告?

[英]Why does my .NET Standard 2.0 (multi-targetting) project has a warning on one of the dependent assemblies?

我有一個當前針對NetStandard1.4的項目。

我正在嘗試使其成為多目標框架:

  • net461
  • netstandard14
  • netstandard20

合理的理由是針對特定框架(以應用為目標),僅下拉最小數量的程序集。 因此,在上面的示例中, ns14的min框架為461 ,但是針對net461的應用程序會net461一些核心內容,人們說這會在未使用這些程序集的情況下增加額外的噪音。

當我嘗試針對這三個框架時,在NetStandard2.0版本中會收到一些警告。

在此處輸入圖片說明

我嘗試將鼠標懸停在Visual Studio中的該程序集上,但沒有工具提示顯示。 此外,錯誤列表或輸出(構建)窗口也沒有說明。

有什么方法可以查看警告是什么? 甚至可以通過CLI?

您正在引用.netStandard項目中的System.Net.Http 該引用已經存在於NetStandard.Library ,因此您無需添加它。 大多數時候,您應該只引用項目或NuGet包。

在我的計算機上, dotnet build確實失敗,並顯示以下警告:

C:\\ Program Files \\ dotnet \\ sdk \\ 2.1.100-preview-007326 \\ Microsoft.Common.CurrentVersion.targets(2051,5):警告MSB3245:無法解析此引用。 無法找到程序集“ System.Net.Http”。 檢查以確保程序集在磁盤上。 如果您的代碼需要此引用,則可能會出現編譯錯誤。

如果您不想添加對NetStandard.Library的引用,解決方案是使用Condition屬性僅添加對net461版本的引用:

<PropertyGroup>
  <TargetFrameworks>net461;netstandard1.4;netstandard2.0</TargetFrameworks>
</PropertyGroup>

<ItemGroup Condition="'$(TargetFramework)'=='net461'">
  <Reference Include="System.Net.Http" />
</ItemGroup>

暫無
暫無

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

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