2014-08-29 2 views
1

Я хочу создать пакеты nuget (и развернуть их в моем приватном репозитории nuget) после того, как мои сборки будут скомпилированы.Создание и публикация пакетов nuget из процесса сборки TFS?

Я попытался настроить все с помощью NuGetter, но этот проект неактивен и позволяет создавать только один пакет/проект, когда мне нужен один пакет/сборка.

Теперь я застрял. Я сейчас смотрю на их источник, надеясь сделать его более полезным для меня.

Что я задаю здесь, параллельно: есть ли у кого-нибудь готовое решение для публикации/создания пакетов nuget с TFS 2012 и/или TFS2010 для решений с несколькими пакетами?

+0

Вы проверили руководство по управлению версиями управления версией TFS ALM Rangers - Управление зависимостями с помощью NuGet? –

ответ

3
I tried setting everything up by using NuGetter, but that project is kind of inactive and only allows you to build one package/project while I need one package/assembly. 

NuGetter поддерживает несколько пакетов, я только использовать метод множественного пакета теперь, как вы можете использовать его для одного или нескольких пакетов.

с помощью файла XML пакетов можно указать несколько пакетов

<?xml version="1.0"?> 
<NuGetterPackages> 
    <NuGetterPackage name="Package1"> 
    <NuSpecFilePath>Package1.nuspec</NuSpecFilePath> 
    <BasePath>NuGetPrePackage_Package1</BasePath> 
    <InvokePowerShell>True</InvokePowerShell> 
    <PowerShellScriptPath>PrePackage_Package1.ps1</PowerShellScriptPath> 
    <InvokePush>True</InvokePush> 
    <OutputDirectory>NuGetPackage</OutputDirectory> 
    <PushDestination>\\MYFeedLoc\NugetFeed</PushDestination> 
    <Version>1.0.J.B</Version> 
    </NuGetterPackage> 
<NuGetterPackage name="Package2"> 
    <NuSpecFilePath>Package2.nuspec</NuSpecFilePath> 
    <BasePath>NuGetPrePackage_Package2</BasePath> 
    <InvokePowerShell>True</InvokePowerShell> 
    <PowerShellScriptPath>PrePackage_Package2.ps1</PowerShellScriptPath> 
    <InvokePush>True</InvokePush> 
    <OutputDirectory>NuGetPackage</OutputDirectory> 
    <PushDestination>\\MYFeedLoc\NugetFeed</PushDestination> 
    <Version>1.0.J.B</Version> 
    </NuGetterPackage> 
</NuGetterPackages> 

под контролем источника у меня есть файл packages.xml, а затем в NuGet пакет файл Powershell и nuspec файл.

Nuspec файла выглядит следующим образом

<?xml version="1.0"?> 
<package > 
    <metadata> 
    <id>Package1</id> 
    <version>$version$</version> 
    <title>Package1</title> 
    <authors>Package1 Author</authors> 
    <owners>Package1 Owner</owners> 
    <iconUrl>http://Iconserver/nextlogo.png</iconUrl> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <description>Description of Contents</description> 
    <releaseNotes>First release of the package.</releaseNotes> 
    <copyright>Copyright 2014</copyright> 
    <tags>Space Seperated Tags</tags> 
    <dependencies> 
     <dependency id="AnyLatestDependencyIMayHAve" version=""/> 
     <dependency id="AFixedDependencyIMayHAve" version="[1.0.0]"/> 
    </dependencies> 
    </metadata> 
</package> 

, а затем файл Powershell, который просто создает структуру папок внутри BasePathDeclaration в Packages.xml, это тот же файл, как показано на сайте NuGetter

Я добавил полное объяснение на моем blog

+0

так вот что должно выглядеть. Благодаря :). Но почему вы указываете файл nuspec для каждого проекта? Как это работает? Насколько я читал, эти файлы создаются до создания пакета ?! –

+0

Расширили ответ. все создается перед рукой. выполняется сборка. создается папка «BasePath», и скрипт powershell создаст там нужную структуру, а затем скопирует DLL пакета в эту структуру. Затем NuGet запускается против структуры для создания пакета –

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