[英]Multi targetting net461 and netstandard - netstandard dependencies required even in net461 consumer
我正在開發一個同時針對net461
和netstandard2.0
此類的依賴項之一是Microsoft.ApplicationInsights
當它被定位只是 net461,我可以添加到一個參考Microsoft.ApplicationInsights
通過包管理器控制台或UI的NuGet(V2.4.0),並且將自身添加為依賴關系。
一旦我對csproj進行了多目標定位:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
</PropertyGroup>
</Project>
...如果我嘗試添加參考,它會要求我接受許多很多依賴項的許可協議。 當然,我照做了。
當我將此類庫打包為nuget包時,就會出現我的問題。
即使我的使用方應用程序以net461
目標,但在安裝此軟件包時,系統仍會提示我安裝所有netstandard依賴項-即使我的使用方應用程序未針對netstandard。
有沒有辦法阻止我net461
針對性的包裝要求對所有依賴netstandard
?
您是否嘗試過使用項目文件中的條件使某些依賴關系特定於目標框架? 盡管沒有創建nuget包,但我也遇到了類似的聽起來問題,這很有幫助。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
<Reference Include="DependencyA" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
<PackageReference Include="DependencyB" Version="1.0.0" />
</ItemGroup>
</Project>
另一個想法是查看現有的開放源代碼項目,看看他們如何解決它。 盡管使用Microsoft.ApplicationInsights
查找一個可能比較棘手。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.