Новый проект UWP (таргетинг 10586 или версия AU, не имеет значения). При установке пакета Google.Apis
1,20 (или другие версии) project.lock.json содержит следующие строки:NuGet восстанавливает/устанавливает/блокирует недействительный вариант dll для приложения UWP
{
"version": 2,
"targets": {
"UAP,Version=v10.0": {
"Google.Apis/1.20.0": {
"type": "package",
"dependencies": {
"Google.Apis.Core": "1.20.0",
...
"System.Threading.Tasks": "4.0.11"
},
"compile": {
"lib/win81/Google.Apis.PlatformServices.dll": {},
"lib/win81/Google.Apis.dll": {}
},
"runtime": {
"lib/win81/Google.Apis.PlatformServices.dll": {},
"lib/win81/Google.Apis.dll": {}
}
},
Я задаюсь вопросом, почему узлы компиляции/времени выполнения ссылки Библиотека/win81, а package itselfnetstandard1.3
содержит папку.
Если я установлю Google.Apis.Core
, он ссылается netstandard1.3
DLLs из этого пакета и до сих пор win81
DLLs из Google.Apis
.
Чудо, почему это и как заставить его использовать netstandard1.3 вместо этого?
Вот структура и nuspec пакета:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>Google.Apis</id>
<version>1.20.0</version>
<title>Google APIs Client Library</title>
<authors>Google Inc.</authors>
<owners>google-apis-packages</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
<projectUrl>https://developers.google.com/api-client-library/dotnet</projectUrl>
<description>The Google APIs Client Library is a runtime client for working with Google services.
The library supports service requests, media upload and download, etc.
Supported Platforms:
- .NET Framework 4.5 and 4.6
- NetStandard1.3
- Windows 8 Apps
- Windows Phone 8 and 8.1
- Portable Class Libraries</description>
<tags>Google</tags>
<dependencies>
<group>
<dependency id="Google.Apis.Core" version="1.20.0" />
<dependency id="Zlib.Portable.Signed" version="1.11.0" />
</group>
<group targetFramework=".NETFramework4.5">
<dependency id="log4net" version="2.0.3" />
<dependency id="Google.Apis.Core" version="1.20.0" />
<dependency id="Zlib.Portable.Signed" version="1.11.0" />
</group>
<group targetFramework=".NETStandard1.3">
<dependency id="Google.Apis.Core" version="1.20.0" />
<dependency id="System.Collections" version="4.0.11" />
<dependency id="System.Diagnostics.Debug" version="4.0.11" />
<dependency id="System.IO" version="4.1.0" />
<dependency id="System.IO.Compression" version="4.1.0" />
<dependency id="System.Linq" version="4.1.0" />
<dependency id="System.Net.Http" version="4.1.0" />
<dependency id="System.Net.Primitives" version="4.0.11" />
<dependency id="System.Reflection" version="4.1.0" />
<dependency id="System.Runtime" version="4.1.0" />
<dependency id="System.Runtime.Extensions" version="4.1.0" />
<dependency id="System.Text.Encoding" version="4.0.11" />
<dependency id="System.Threading" version="4.0.11" />
<dependency id="System.Threading.Tasks" version="4.0.11" />
<dependency id="System.Reflection.TypeExtensions" version="4.1.0" />
</group>
</dependencies>
</metadata>
</package>
У, спасибо за ваш ответ. Мой вопрос не касался конкретного пакета, но в общем, почему NuGet решил использовать win81 lib вместо netstandard13 lib. –
@AlexSorokoletov, это зависит от того, как пакет библиотеки издателя. Пожалуйста, обратитесь к созданию пакета, который я уже упоминал выше. –
К сожалению, это не тот ответ, который я ищу. У меня есть точная библиотека и точный целевой проект. Какая строка в .nuspec запускает NuGet или VS для использования библиотеки win81 поверх netstandard13? –