Я использую NuGet для управления своими внутренними сборками в течение нескольких месяцев, и он работает очень хорошо. Недавно я «обнаружил» переносимые библиотеки классов, и это тоже было здорово - пока не пришло время устанавливать пакеты.
Скажем, у меня есть PCL, предназначенный для .NET 4.5, SL5 и .NET для приложений Магазина Windows. Я запускаю nuget spec
, чтобы создать файл .nuspec, отредактировать значения, упаковать его и добавить .nupkg к нашему внутреннему каналу. Если я открою файл .nupkg в проводнике пакетов, я увижу одну папку содержимого в библиотеке под названием portable-win + net45 + sl50.
Когда я пытаюсь установить пакет из любого совместимого проекта в другом решении, я получаю следующее сообщение:
«'Project.PCL' не может быть установлен, потому что он несовместим с каким-либо проектом в решении. Пакет не предназначен для какой-либо платформы».
Если я вручную создаю .nupkg в проводнике пакетов, обновляю номер версии, добавляю папку lib для каждой целевой платформы (не переносимой папки) и добавляю Project.PCL.dll в каждую папку, я могу добавить пакет в совместимые проекты в решении. Но выполнять этот процесс каждый раз, когда я хочу обновить PCl, несколько утомительно (я создавал небольшой файл .cmd в корневой папке проекта для быстрой упаковки и развертывания).
Есть ли у других такая проблема? Как я могу упаковать PCL так же, как и другие типы проектов?
Примечание. Я использую VS 2012 Ultimate и NuGet 2.2.