-
Notifications
You must be signed in to change notification settings - Fork 731
Description
Background and motivation
I hope this is the correct place to raise this.
Currently for .net47 target you are adding reference to System.Net.Http as package dependency:
<ItemGroup Condition="'$(TargetFramework)' == 'net47'">
<PackageReference Include="System.Net.Http" Version="4.3.4" />
</ItemGroup>
According to this issue dot net team advise adding System.Net.Http standard framework reference instead. Just quoting them:
if you're building a .NET Framework 4.7.2 class library, then you could just add a normal Framework reference to System.Net.Http.
In most cases, we don't advise people use the separate System.Net.Http NuGet package anymore. See dotnet/runtime#18280 and dotnet/runtime#20777.
The main reason why I am suggesting this change is that VisualStudio resolve 4.7.2 project dependency to System.Net.Http and all its System dependencies by adding references to .net framework installed on local machine instead of project nuget. I think this issue has been raise in multiple place e.g. Broken System.Net.Http 4.1.1-4.3.0 post-mortem . It can also be problematic when you have reference to same assembly with both a single name reference and a package reference. For more details please take a look on Single-name references are removed by the SDK when targeting .NET Framework 4.7.2 and referencing a package with the same assembly
Alternative Concerns
Could you consider changing above to something like:
<ItemGroup Condition=" '$(TargetFramework)' == 'net47' ">
<Reference Include="System.Net.Http" />
</ItemGroup>
It looks like another few other projects decide to follow this advise e.g. IdentityModel, Microsoft Graph