Nuget - решение для нескольких проектов (нацеливание на несколько фреймворков)
Скажем, у меня есть следующее решение с несколькими версиями одного и того же кода, каждая из которых нацелена на разную инфраструктуру, и я хотел бы создать пакет nuget из него.
SharedLib.sln
SharedLib.Net35.csproj
packages.config
SharedLib.Net40.csproj
packages.config
SharedLib.Phone.csproj
packages.config
SharedLib.SL4.csproj
packages.config
Ожидаемый нупкг имеет следующую структуру
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 ответ
Нет, в настоящее время нет другого способа сделать это, кроме как написать собственный скрипт сборки, который поместит файлы в нужное место и затем запустит пакет NuGet для них, или использовать описанный вами подход.nuspec.
Это функция, которую мы хотели бы иметь, но пока не подумали, как это сделать. Тем не менее, ваш пост только что дал мне идею.
Сегодня вы можете указать пакет nuget на файл.csproj.
Мы могли бы рассмотреть подход, который позволил бы вам указать его на файл.sln, и если имена проектов соответствуют некоторому соглашению, мы упаковали бы все проекты в один пакет.
Если вы действительно хотите эту функцию, рассмотрите возможность регистрации проблемы в системе отслеживания ошибок NuGet. http://nuget.codeplex.com/workitem/list/basic