Nuget - решение для нескольких проектов (нацеливание на несколько фреймворков) - PullRequest
17 голосов
/ 27 сентября 2011

Скажем, у меня есть следующее решение с несколькими версиями одного и того же кода, каждая из которых нацелена на разную инфраструктуру, и я хотел бы создать пакет nuget из него.

SharedLib.sln
  SharedLib.Net35.csproj
    packages.config
  SharedLib.Net40.csproj
    packages.config
  SharedLib.Phone.csproj
    packages.config
  SharedLib.SL4.csproj
    packages.config

Ожидаемый nupkg имеет следующую структуру

SharedLib.1.0.nupkg
  lib/net35/SharedLib.dll
  lib/net40/SharedLib.dll
  lib/sl4-wp/SharedLib.dll
  lib/sl4/SharedLib.dll

nuget.exe pack SharedLib.SL4.csproj автоматически определит, что целевой платформой является SilverLight4, и поместит двоичные файлы в lib/sl4

Я знаю, что могу добавить файл SharedLib.SL4.nuspec с разделом <file>включить бинарные файлы из других проектов, но есть ли способ заставить nuget автоматически помещать вывод комбинированного решения в правильную структуру (а также обнаруживать зависимости в packages.config от всех проектов?

1 Ответ

9 голосов
/ 21 октября 2011

Нет, в настоящее время нет другого способа сделать это, кроме как написать собственный скрипт сборки, который помещает файлы в нужное место и затем запускает пакет NuGet для них, или использовать описанный вами подход .nuspec.

Это функция, которую мы хотели бы иметь, но пока не нашли хороший способ сделать это. Тем не менее, ваш пост только что дал мне идею.

Сегодня вы можете указать пакет nuget на файл .csproj.

Мы могли бы рассмотреть подход, который позволил бы вам указать его на файл .sln, и если имена проектов следуют некоторому соглашению, мы упаковали бы все проекты в один пакет.

Если вы действительно хотите эту функцию, рассмотрите возможность регистрации проблемы в трекере ошибок NuGet. http://nuget.codeplex.com/workitem/list/basic

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...