У меня есть DLL, обращающаяся к библиотеке .NET 4.7.1.
Возможно, не имеет значения, но он написан на C # и использует пакеты NuGet с использованием шаблона «packages.config», а не более новой конфигурации PackageReference.
Я публикую это как пакет NuGet (делаю это уже несколько лет). Но теперь, когда я выполняю следующее:
nuget pack -Properties Configuration=Release
Я получаю следующее предупреждение:
Ошибка NU5128: некоторые целевые платформы, объявленные в группе зависимостей nuspec и папке lib / ref, не имеют точных совпадений в другом месте. См. Список действий ниже: - Добавьте группу зависимостей для .NETFramework4.7.1 в nuspec
У меня нет ничего в группе зависимостей nuspec:
<?xml version="1.0"?>
<package >
<metadata>
<id>*******</id>
<version>*******</version>
<title>*******</title>
<authors>*******</authors>
<owners>*******</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>*******</description>
<releaseNotes>*******</releaseNotes>
<copyright>*******</copyright>
<tags>*******</tags>
</metadata>
</package>
Это потребляет следующие пакеты NuGet:
- Microsoft.AspNet.WebApi.Client v5.2.7
- Microsoft.AspNet.WebApi.Core v5.2.7
- Microsoft.CodeAnalysis.FxCopAnalyzers v2.9.8
- Microsoft.CodeAnalysis.VersionCheckAnalyzer v2.9.8
- Microsoft.CodeQuality.Analyzers v2.9.8
- Microsoft.NetCore.Analyzers v2.9.8
- Microsoft.NetFramework.Analyzers v2.9.8
- Newtonsoft.Json v12.0.3
- StyleCop.Analyzers v1.1.118
Когда я смотрю в раздел «Ссылки», я вижу следующее (используется ~ для сокращения пути):
- Microsoft.CSharp ~ .NETFramework \ v4.7.1 \ Microsoft.CSharp.dll
- Newtonsoft.Json ~ \ packages \ Newtonsoft.Json.12.0.3 \ lib \ net45 \ Newtonsoft.Json.dll
- Система ~ \ NETFramework \ v4.7.1 \ System.dll
- System.Configuration ~ .NETFramework \ v4.7.1 \ System.Configuration.dll
- System.Core ~ .NETFramework \ v4.7.1 \ System.Core.dll
- System.Data ~ .NETFramework \ v4.7.1 \ System.Data.dll
- System.Data.DataSetExtensions ~ .NETFramework \ v4.7.1 \ System.Data.DataSetExtensions.dll
- System.Net.Http ~ .NETFramework \ v4.7.1 \ System.Net.Http.dll
- System.Net.Http.Formatting ~ \ packages \ Microsoft.AspNet.WebApi.Client.5.2.7 \ lib \ net45 \ System.Net.Http.Formatting.dll
- System.Web.Http ~ \ packages \ Microsoft.AspNet.WebApi.Core.5.2.7 \ lib \ net45 \ System.Web.Http.dll
- System.Xml ~ .NETFramework \ v4.7.1 \ System.Xml.dll
- System.Xml.Linq ~ .NETFramework \ v4.7.1 \ System.Xml.Linq.dll
На мой взгляд, все выглядит так, как будто оно совместимо с .NET 4.7.1, так почему это предупреждение?
Следуя деталям, приведенным в Предупреждение NuGet NU5128, Поэтому я добавил группу зависимостей:
<?xml version="1.0"?>
<package >
<metadata>
<id>*******</id>
<version>*******</version>
<title>*******</title>
<authors>*******</authors>
<owners>*******</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>*******</description>
<releaseNotes>*******</releaseNotes>
<copyright>*******</copyright>
<tags>*******</tags>
<dependencies>
<group targetFramework=".NETFramework4.7.1" />
</dependencies>
</metadata>
</package>
Но это ни на что не влияет, я все равно получаю ошибку.