2016-12-01 4 views
1

У меня есть вопросы об использовании библиотек netstandard:Библиотеки Netstandard - ссылки в портативных классах

Предположим, у меня есть проект UWP. Этот проект позволяет установить библиотеку netstandard в версии 1.4 и ниже. Я создаю библиотеку PCL с netstandard версии 1.2 и добавляю эту библиотеку в качестве ссылки на проект UWP. Я добавляю некоторый пакет nuget в библиотеку PCL. Этот nuget также находится в версии netstandard 1.2.

  1. Могу ли я использовать пакет nuget из проекта UWP без добавления ссылки на него? Я где-то читал, что могу, но я не могу заставить его работать самостоятельно.
  2. Если я использую пакет nuget только из созданной библиотеки PCL, тогда все строит нормально, но во время выполнения получается, что PCL выдает исключение, которое не может найти ссылку на библиотеку nuget. Нугет не копируется в конечный каталог bin, поэтому его нельзя найти. Как с этим справиться? Должен ли я ссылаться на эту библиотеку из проекта UWP?
  3. Если я добавлю ссылку на Nuget на проект UWP, фактический ссылочный nuget может отличаться от библиотеки, на которую ссылается библиотека PCL, потому что nuget.org может возвращать разные библиотеки для проекта UWP и библиотеки различных библиотек PCL netstandard1.2. Таким образом, во время выполнения библиотеки PCL будут найдены ссылки dll, но эта dll не находится в apriopriate версии.

Я что-то упустил или он должен работать так?

Описанная проблема основана на универсальной платформе Windows, но, как я думаю, проблема более общая, а не с этой платформой.

+0

Ваше описание грязное. Попробуйте показать некоторые снимки экрана или дать значимые имена этим «проектам» и «пакетам», чтобы помочь. –

+0

Что такое грязное? Какие снимки экрана я могу предоставить для визуализации проблемы?Проблема заключается не в конкретных пакетах, а в концепции библиотек ссылок. – raV720

ответ

1

Могу ли я использовать пакет nuget из проекта UWP без добавления ссылки на него? Я где-то читал, что могу, но я не могу заставить его работать самостоятельно.

Насколько я знаю, невозможно использовать пакет Nuget без добавления ссылки на него. Nuget просто добавляет ссылку на эти внешние пакеты в файле .nuspec. Если вы не хотите использовать пакет nuget, вы можете напрямую ссылаться на библиотеки. Вы можете найти библиотеки под C:\Users\<username>\.nuget\packages\<Destination Package>

Если я использую NuGet пакета только из созданной библиотеки PCL, то все строит нормально, но во время выполнения получается, что PCL бросает исключение, которое не может найти ссылку NuGet библиотеки. Нугет не копируется в конечный каталог bin, поэтому его нельзя найти. Как с этим справиться? Должен ли я ссылаться на эту библиотеку из проекта UWP?

Это может быть вызвано целым рядом причин. Не могли бы вы предложить несколько шагов, чтобы воспроизвести эту проблему?

Если добавить NuGet ссылки на проект UWP то фактическая ссылка NuGet может отличаться от библиотеки ссылается из библиотеки PCL, поскольку nuget.org может возвращать различные библиотеки для проекта UWP и dfifferent PCL библиотеки netstandard1.2. Таким образом, во время выполнения библиотеки PCL будут найдены ссылки dll, но эта dll не находится в apriopriate версии.

Обновите библиотеку в PCL до той же версии.

Смежные вопросы