【发布时间】:2018-09-14 04:01:44
【问题描述】:
我正在开发一个类库,该类库同时针对 net461 和 netstandard2.0
这个类库的依赖之一是Microsoft.ApplicationInsights
当它针对 just net461 时,我可以通过包管理器控制台或 nuget ui 添加对 Microsoft.ApplicationInsights (v2.4.0) 的引用,它会将自身添加为依赖项。
一旦我对 csproj 进行了多目标:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
</PropertyGroup>
</Project>
...如果我尝试添加引用,它会要求我接受许多依赖项的许可协议。 当然,我确实这样做了。
当我将这个类库打包为 nuget 包时,我的问题就出现了。
即使我的消费应用程序以 net461 为目标,当我安装此软件包时,系统也会提示我安装所有 netstandard 依赖项 - 即使我的消费应用程序不以 netstandard 为目标。
有没有办法阻止我的net461 目标包需要netstandard 的所有依赖项?
【问题讨论】:
-
嘿亚历克斯,我只是在本地尝试了这个,因为它不是我所期望的,我得到了不同的结果。当我创建一个
net451控制台应用程序并添加一个新的多目标包(如您在上面定义的)时,我只得到Microsoft.ApplicationInsights和System.Diagnostics.DiagnosticSource,没有NETStandard.Library。我错过了一步吗? -
我建议您查看
obj\project.assets.json的内容以了解这些依赖项中的内容,因为您所描述的内容不会是应用洞察包。 -
所以,这最终是由于包的上游依赖没有升级造成的!我已投票结束此问题。
标签: c# .net-standard .net-standard-2.0 multitargeting multi-targeting