2017-02-20 40 views
0

Я создал библиотеку для приложений UWP. project.json как это:Nuget устанавливает System.Console как зависимость для моей библиотеки UWP

{ 
    "dependencies": { 
    "System.Collections.NonGeneric": "4.0.1-*", 
    "System.Collections.Specialized": "4.0.1-*", 
    "System.Net.Requests": "4.0.11-*", 
    "System.Net.Security": "4.0.0-*", 
    "System.Security.Cryptography.Algorithms": "4.2.0-*", 
    "System.Security.Cryptography.Pkcs": "4.0.0-*", 
    "System.Globalization.Extensions": "4.0.1-*" 
    }, 
    "frameworks": { 
    "uap10.0": { 
     "dependencies": { 
     "Microsoft.NETCore.UniversalWindowsPlatform": "5.2.2-*", 
     "System.Runtime.InteropServices.RuntimeInformation": "4.0.0-*" 
     } 
    }, 
    "netstandard1.3": { 
     "dependencies": { 
     "NETStandard.Library": "1.6.0-*", 
     "System.Xml.XmlDocument": "4.0.1-*", 
     "System.Net.NetworkInformation": "4.1.0-*", 
     "System.Net.NameResolution": "4.0.0-*", 
     "Microsoft.Win32.Registry": "4.0.0-*", 
     "System.Threading.Thread": "4.0.0-*" 
     } 
    } 
    } 
} 

Я создал NuGet пакет, выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?> 
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd"> 
    <metadata> 
    <id>...</id> 
    <version>...</version> 
    <title>...</title> 
    <authors>...</authors> 
    <owners>...</owners> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <licenseUrl>...</licenseUrl> 
    <projectUrl>...</projectUrl> 
    <iconUrl?...</iconUrl> 
    <description>...</description> 
    <summary>...</summary> 
    <releaseNotes>...</releaseNotes> 
    <copyright>...</copyright> 
    <tags>...</tags> 
    <dependencies> 
     <group targetFramework=".NETStandard1.3"> 
     <dependency id="NETStandard.Library" version="1.6.0" /> 
     </group> 
    </dependencies> 
    </metadata> 
</package> 

Т.е. для UWP lib еще нет информации о зависимостях.

Однако при установке этого пакета nuget предлагает мне установить пакет System.Console.

enter image description here

Я не уверен, что я никогда не получить доступ к консоли в моей библиотеке, ни Dependency Walker видит все ссылки на него. Почему это могло произойти? Возможно ли, что какая-то другая библиотека из зависимостей project.json косвенно зависит от нее? Я блуждал, хотя ссылался на зависимости libs в Dependency Walker, но не смог найти ничего на первом уровне (дерево зависимостей достаточно глубоко, чтобы найти каждую зависимость вручную).

Как определить, какая ссылка вызывает появление зависимости System.Console? И все в порядке? Мне показалось, что Консоль и UWP не идут хорошо.

NuGet 3,5, Visual Studio 2015 Update 3.

ответ

1

У вас есть зависимость NETStandard.Library с версии 1.6.0 в вашем пакете NuGet. Затем вы можете проверить зависимости для NETStandard.Library 1.6.0 в Package Manager UI или NuGet.org, выяснить зависимость System.Console (> = 4.0.0) ссылается на NETStandard.Library:

enter image description here

И все в порядке после установки пакета NuGet UniApp. Ниже представлен файл project.json после успешного завершения установки этого пакета.

enter image description here