{"id":28277,"date":"2019-09-11T00:00:00","date_gmt":"2019-09-10T22:00:00","guid":{"rendered":"https:\/\/blexin.com\/?p=28277"},"modified":"2021-05-20T20:15:04","modified_gmt":"2021-05-20T18:15:04","slug":"creare-pacchetti-nuget-con-azure-pipelines","status":"publish","type":"post","link":"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/","title":{"rendered":"Creare pacchetti NuGet con Azure Pipelines"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"608\" data-attachment-id=\"28278\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/attachment\/fe058e1c-2dbb-4dc9-b70e-5133299174c5\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png?fit=1024%2C608&amp;ssl=1\" data-orig-size=\"1024,608\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"fe058e1c-2dbb-4dc9-b70e-5133299174c5\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png?fit=1024%2C608&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png?resize=1024%2C608&#038;ssl=1\" alt=\"\" class=\"wp-image-28278\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/fe058e1c-2dbb-4dc9-b70e-5133299174c5-980x582.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/fe058e1c-2dbb-4dc9-b70e-5133299174c5-480x285.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Automatizzare la creazione dei pacchetti Nuget<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Negli articoli precedenti, abbiamo visto come creare dei pacchetti nuget per il nostro software e come condividerli con gli altri membri del team usando i feed di Azure Artifacts. Inoltre, abbiamo visto alcune tecniche che possono aiutarci in fase di versionamento dei nostri pacchetti. In quest\u2019ultimo articolo, vedremo in che modo automatizzare l\u2019intero processo di creazione e versionamento dei pacchetti Nuget usando Azure Pipelines.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cos&#8217;\u00e8 Azure Pipelines?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Azure Pipelines ci consente di creare delle pipeline di release per i nostri software. Ci sono alcuni punti di forza che rendono Azure Pipelines un ottimo strumento:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Cross-platform;<\/li><li>Possibilit\u00e0 di compilare diversi linguaggi e per diverse piattaforme (web, mobile, etc etc);<\/li><li>Host degli agenti di compilazione on-premise o cloud;<\/li><li>Possibilit\u00e0 di usare YAML per la creazione di pipeline;<\/li><li>Ottima estensibilit\u00e0 grazie ad un marketplace per le estensioni;<\/li><li>Gratuito per freelancer o team di piccole dimensioni (maggiori info&nbsp;<a href=\"https:\/\/azure.microsoft.com\/en-us\/pricing\/details\/devops\/azure-devops-services\/\" rel=\"noreferrer noopener\" target=\"_blank\">qui<\/a>);<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 importante sapere che in Azure Pipelines esiste una netta distinzione tra il processo di build e quello di release: il primo ci consente di generare degli artefatti, il secondo invece distribuisce gli stessi artefatti su diversi ambienti (o stage).<br>Inoltre, un aspetto che mi piace sempre enfatizzare di Azure Pipelines \u00e8 la sua semplicit\u00e0 d\u2019uso: l\u2019esperienza di creazione o il feedback sullo stato di una pipeline \u00e8 sempre molto chiaro e di facile comprensione. Vi ricordo, inoltre, che Azure Pipelines fa parte di una suite di prodotti il cui nome \u00e8&nbsp;<a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/devops\/\" rel=\"noreferrer noopener\" target=\"_blank\">Azure DevOps<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Creare una build per i nostri pacchetti Nuget<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Siamo quindi giunti al momento della creazione dei pacchetti Nuget. Ci spostiamo nella sezione Azure Pipelines del nostro account Azure DevOps e creiamo una nuova pipeline con il tasto \u201cNuova\u201d e poi \u201cBuild Pipeline\u201d.<br>Nel wizard di creazione, possiamo fornire sia un repository da cui attingere il codice sorgente e che consente di creare una pipeline usando YAML, sia usare l\u2019<strong>editor classico<\/strong>, in cui si compone una build tramite l\u2019uso di singoli task. Per semplicit\u00e0 d\u2019uso, vi illustro come utilizzare la seconda opzione.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"869\" data-attachment-id=\"28282\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/attachment\/1-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/1.png?fit=1348%2C1144&amp;ssl=1\" data-orig-size=\"1348,1144\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/1.png?fit=1024%2C869&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/1.png?resize=1024%2C869&#038;ssl=1\" alt=\"\" class=\"wp-image-28282\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/1-980x832.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/1-480x407.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><figcaption><em>Tipologie di pipeline disponibili<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dopo aver selezionato il repository, selezioniamo la tecnologia di cui abbiamo bisogno: scegliamo \u201c.NET Desktop\u201d come template.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"332\" data-attachment-id=\"28284\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/attachment\/2-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2-1.png?fit=1309%2C424&amp;ssl=1\" data-orig-size=\"1309,424\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"2-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2-1.png?fit=1024%2C332&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2-1.png?resize=1024%2C332&#038;ssl=1\" alt=\"\" class=\"wp-image-28284\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/2-1-980x317.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/2-1-480x155.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><figcaption><em>Tipologie di template per build<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dobbiamo poi fornire alcune informazioni (vedi figura sotto):<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Il nome della nostra build<\/li><li>La tipologia dell\u2019agent da utilizzare (hosted o privato);<\/li><li>La tipologia di agente che occorre per poter compilare il nostro progetto in base alla piattaforma di sviluppo utilizzata (es. .NET Framework, Node.js, etc etc).<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"492\" data-attachment-id=\"28287\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/attachment\/3-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3-1.png?fit=1365%2C656&amp;ssl=1\" data-orig-size=\"1365,656\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"3-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3-1.png?fit=1024%2C492&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3-1.png?resize=1024%2C492&#038;ssl=1\" alt=\"\" class=\"wp-image-28287\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/3-1-980x471.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/3-1-480x231.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><figcaption><em>Un esempio di definizione build<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Adesso modifichiamo il nostro template di build per generare il pacchetto Nuget da caricare sul Feed. Rimuoviamo prima il penultimo task \u201cCopy Files to: $(build.artifactstagingdirectory)\u201d e sostituiamolo con un nuovo task di tipo \u201cNuget\u201d tramite il tasto \u201c+\u201d in alto. Una volta aggiunto, indichiamo nel lato destro della finestra:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>\u201cPack\u201d come comando da eseguire;<\/li><li>il path del progetto (o progetti) o anche il nuspec che abbiamo visto come creare in uno dei precedenti articoli. Se guardiamo l\u2019immagine sotto, grazie all\u2019uso di un pattern, scegliamo di creare i pacchetti Nuget per tutti i progetti presenti all\u2019interno della nostra soluzione.<\/li><li>di aggiungere i progetti referenziati usando il flag \u201cInclude referenced projects\u201d.<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"583\" data-attachment-id=\"28289\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/attachment\/4-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/4-1.png?fit=1364%2C776&amp;ssl=1\" data-orig-size=\"1364,776\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"4-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/4-1.png?fit=1024%2C583&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/4-1.png?resize=1024%2C583&#038;ssl=1\" alt=\"\" class=\"wp-image-28289\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/4-1-980x558.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/4-1-480x273.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><figcaption><em>La build modificata per creare i pacchetti Nuget<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Eseguiamo la build con il tasto in alto \u201cQueue\u201d e, al suo termine, verifichiamo tramite il pulsante \u201cArtifacts\u201d nella pagina di riepilogo l\u2019insieme dei pacchetti generati.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Versionare i pacchetti Nuget<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Siamo pronti per poter aggiungere, tramite l\u2019uso di GitVersion, i numeri di versione ai nostri pacchetti. Infatti, \u00e8 possibile, grazie all\u2019uso di una estensione, integrare nella nostra build la generazione dei numeri in piena ottica SemVer. Per prima cosa, aggiungiamo un task cliccando come sempre sul tasto \u201c+\u201d in alto e cerchiamo nella casella di ricerca \u201cGitVersion\u201d. Se questo task non \u00e8 gi\u00e0 presente nel nostro account, possiamo scaricarlo dal marketplace seguendo il wizard (a questo\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/devops\/marketplace\/install-extension?view=azure-devops\" target=\"_blank\">link<\/a>\u00a0trovate tutte le informazioni in merito).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"393\" data-attachment-id=\"28291\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/attachment\/5-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/5-1.png?fit=1367%2C524&amp;ssl=1\" data-orig-size=\"1367,524\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"5-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/5-1.png?fit=1024%2C393&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/5-1.png?resize=1024%2C393&#038;ssl=1\" alt=\"\" class=\"wp-image-28291\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/5-1-980x376.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/5-1-480x184.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><figcaption><em>Aggiunta di GitVersion alla build<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Selezioniamo il task GitVersion e impostiamo i seguenti parametri:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>il path al GitVersion.yml (creato nel precedente articolo);<\/li><li>abilitare il flag \u201cUpdate AssemblyInfo files\u201d.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"293\" data-attachment-id=\"28294\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/attachment\/6-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/6-1.png?fit=1337%2C383&amp;ssl=1\" data-orig-size=\"1337,383\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"6-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/6-1.png?fit=1024%2C293&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/6-1.png?resize=1024%2C293&#038;ssl=1\" alt=\"\" class=\"wp-image-28294\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/6-1-980x281.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/6-1-480x138.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><figcaption><em>Configurazione di GitVersion<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Inoltre, nel file GitVersion.yml sar\u00e0 necessario aggiungere la seguente riga, che imposta il formato di versionamento da utilizzare:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nassembly-informational-format: &#039;{NugetVersion}&#039;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">In questo modo, i nostri pacchetti Nuget saranno versionati con il formato corretto nell\u2019<strong>AssemblyInformationalVersion<\/strong>, di cui abbiamo parlato nello scorso articolo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Caricare i pacchetti generati sul feed<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una volta terminata la creazione del pacchetto Nuget, siamo pronti per caricare il nupkg sul nostro feed di Azure Artifacts. A tal proposito, creiamo una release che parte subito al termine della build e che ha, come unico scopo, quello di recuperare i nupkg e caricarli sul feed. Nella pagina di riepilogo della build, selezioniamo il pulsante \u201cRelease\u201d per creare una nuova pipeline di deploy.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"392\" height=\"82\" data-attachment-id=\"28296\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/attachment\/7-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7-1.png?fit=392%2C82&amp;ssl=1\" data-orig-size=\"392,82\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"7-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7-1.png?fit=392%2C82&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7-1.png?resize=392%2C82&#038;ssl=1\" alt=\"\" class=\"wp-image-28296\" srcset=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7-1.png?w=392&amp;ssl=1 392w, https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7-1.png?resize=300%2C63&amp;ssl=1 300w\" sizes=\"auto, (max-width: 392px) 100vw, 392px\" \/><figcaption><em>Il tasto di creazione di una nuova release<\/em><br><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In questo caso, non selezioniamo alcun template gi\u00e0 pronto come per la build, ma utilizziamo un template vuoto tramite il pulsante \u201c<strong>Empty Job<\/strong>\u201d. Ci ritroviamo nella seguente situazione:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"278\" data-attachment-id=\"28299\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/attachment\/8-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/8-1.png?fit=1353%2C367&amp;ssl=1\" data-orig-size=\"1353,367\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"8-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/8-1.png?fit=1024%2C278&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/8-1.png?resize=1024%2C278&#038;ssl=1\" alt=\"\" class=\"wp-image-28299\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/8-1-980x266.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/8-1-480x130.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><figcaption><em>Impostazioni di base di una release<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I prossimi step sono:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>dare il nome allo stage \u201cNuget Feed\u201d;<\/li><li>impostare un task all\u2019interno dello stage che consenta l\u2019upload del nostro pacchetto Nuget.<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Per il punto due, possiamo cliccare sul link \u201c1 job, 0 task\u201d per avere il dettaglio degli step presenti nel processo di deploy. Si apre una nuova finestra, molto simile a quella che abbiamo visto per la build, che ci consente di utilizzare degli step (o task), per definire il processo di rilascio. Anche in questo caso, ci sar\u00e0 un agente (hosted o privato), che eseguir\u00e0 per noi il processo di deploy.<br>Andiamo quindi ad aggiungere, sempre con il tasto \u201c+\u201d, un nuovo task di tipo \u201cNuget\u201d che prepariamo come la figura seguente:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"420\" data-attachment-id=\"28301\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/attachment\/9-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/9-1.png?fit=1371%2C562&amp;ssl=1\" data-orig-size=\"1371,562\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"9-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/9-1.png?fit=1024%2C420&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/9-1.png?resize=1024%2C420&#038;ssl=1\" alt=\"\" class=\"wp-image-28301\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/9-1-980x402.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/9-1-480x197.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><figcaption><em>I parametri per il task push di Nuget<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Impostiamo prima il comando \u201cpush\u201d (1) da eseguire tramite il task. Questo comando andr\u00e0 a recuperare tutti i file\u00a0<strong>nupkg<\/strong>\u00a0con il pattern \u201c\/**\/*.nupkg\u201d (2) presenti nell\u2019artefatto della build e li caricher\u00e0 sul feed selezionato nel campo \u201cTarget feed\u201d (3). Infine, selezioniamo il flag \u201cAllow duplicates to be skipped\u201d (4), per evitare che la release vada in errore nel caso in cui effettuiamo il deploy di una versione di pacchetto gi\u00e0 presente.<br>Siamo pronti a lanciare la nostra release tramite il pulsante in alto \u201cCreate Release\u201d e verificare che il pacchetto versionato sia caricato correttamente sul feed.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"663\" height=\"393\" data-attachment-id=\"28304\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/attachment\/10-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/10-2.png?fit=663%2C393&amp;ssl=1\" data-orig-size=\"663,393\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"10-2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/10-2.png?fit=663%2C393&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/10-2.png?resize=663%2C393&#038;ssl=1\" alt=\"\" class=\"wp-image-28304\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/10-2.png 663w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/10-2-480x285.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 663px, 100vw\" \/><figcaption><em>Il risultato di una release<\/em><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"108\" data-attachment-id=\"28306\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/attachment\/11\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/11.png?fit=360%2C108&amp;ssl=1\" data-orig-size=\"360,108\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"11\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/11.png?fit=360%2C108&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/11.png?resize=360%2C108&#038;ssl=1\" alt=\"\" class=\"wp-image-28306\" srcset=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/11.png?w=360&amp;ssl=1 360w, https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/11.png?resize=300%2C90&amp;ssl=1 300w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><figcaption><em>Un pacchetto caricato sul nostro feed Nuget<\/em><br><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Buon versionamento a tutti!<\/em><\/p>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>Vediamo come automatizzare la creazione di pacchetti NuGet utilizzando Azure Pipelines della piattaforma Azure DevOps<\/p>\n","protected":false},"author":196716243,"featured_media":28278,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_crdt_document":"","inline_featured_image":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[688637374],"tags":[688637539,688637442,688637441],"class_list":["post-28277","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-devops-it","tag-raptor","tag-webright"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Creare pacchetti NuGet con Azure Pipelines - Blexin<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creare pacchetti NuGet con Azure Pipelines - Blexin\" \/>\n<meta property=\"og:description\" content=\"Vediamo come automatizzare la creazione di pacchetti NuGet utilizzando Azure Pipelines della piattaforma Azure DevOps\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/\" \/>\n<meta property=\"og:site_name\" content=\"Blexin\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-10T22:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-20T18:15:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i2.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png?fit=1024%2C608&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"608\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Antonio Liccardi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Antonio Liccardi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/creare-pacchetti-nuget-con-azure-pipelines\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/creare-pacchetti-nuget-con-azure-pipelines\\\/\"},\"author\":{\"name\":\"Antonio Liccardi\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/e1e90a04ec265b5c0712c5918ba01e8d\"},\"headline\":\"Creare pacchetti NuGet con Azure Pipelines\",\"datePublished\":\"2019-09-10T22:00:00+00:00\",\"dateModified\":\"2021-05-20T18:15:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/creare-pacchetti-nuget-con-azure-pipelines\\\/\"},\"wordCount\":1079,\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/creare-pacchetti-nuget-con-azure-pipelines\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png?fit=1024%2C608&ssl=1\",\"keywords\":[\"DevOps\",\"Raptor\",\"Webright\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/creare-pacchetti-nuget-con-azure-pipelines\\\/\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/creare-pacchetti-nuget-con-azure-pipelines\\\/\",\"name\":\"Creare pacchetti NuGet con Azure Pipelines - Blexin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/creare-pacchetti-nuget-con-azure-pipelines\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/creare-pacchetti-nuget-con-azure-pipelines\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png?fit=1024%2C608&ssl=1\",\"datePublished\":\"2019-09-10T22:00:00+00:00\",\"dateModified\":\"2021-05-20T18:15:04+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/e1e90a04ec265b5c0712c5918ba01e8d\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/creare-pacchetti-nuget-con-azure-pipelines\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/creare-pacchetti-nuget-con-azure-pipelines\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/creare-pacchetti-nuget-con-azure-pipelines\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png?fit=1024%2C608&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png?fit=1024%2C608&ssl=1\",\"width\":1024,\"height\":608},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/creare-pacchetti-nuget-con-azure-pipelines\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blexin.com\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creare pacchetti NuGet con Azure Pipelines\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/\",\"name\":\"Blexin\",\"description\":\"Con noi \u00e8 semplice\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blexin.com\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/e1e90a04ec265b5c0712c5918ba01e8d\",\"name\":\"Antonio Liccardi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g\",\"caption\":\"Antonio Liccardi\"},\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/author\\\/antonio-liccardiblexin-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creare pacchetti NuGet con Azure Pipelines - Blexin","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/","og_locale":"it_IT","og_type":"article","og_title":"Creare pacchetti NuGet con Azure Pipelines - Blexin","og_description":"Vediamo come automatizzare la creazione di pacchetti NuGet utilizzando Azure Pipelines della piattaforma Azure DevOps","og_url":"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/","og_site_name":"Blexin","article_published_time":"2019-09-10T22:00:00+00:00","article_modified_time":"2021-05-20T18:15:04+00:00","og_image":[{"width":1024,"height":608,"url":"https:\/\/i2.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png?fit=1024%2C608&ssl=1","type":"image\/png"}],"author":"Antonio Liccardi","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"Antonio Liccardi","Tempo di lettura stimato":"5 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/#article","isPartOf":{"@id":"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/"},"author":{"name":"Antonio Liccardi","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d"},"headline":"Creare pacchetti NuGet con Azure Pipelines","datePublished":"2019-09-10T22:00:00+00:00","dateModified":"2021-05-20T18:15:04+00:00","mainEntityOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/"},"wordCount":1079,"image":{"@id":"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png?fit=1024%2C608&ssl=1","keywords":["DevOps","Raptor","Webright"],"articleSection":["Blog"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/","url":"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/","name":"Creare pacchetti NuGet con Azure Pipelines - Blexin","isPartOf":{"@id":"https:\/\/blexin.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/#primaryimage"},"image":{"@id":"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png?fit=1024%2C608&ssl=1","datePublished":"2019-09-10T22:00:00+00:00","dateModified":"2021-05-20T18:15:04+00:00","author":{"@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d"},"breadcrumb":{"@id":"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/#primaryimage","url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png?fit=1024%2C608&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png?fit=1024%2C608&ssl=1","width":1024,"height":608},{"@type":"BreadcrumbList","@id":"https:\/\/blexin.com\/it\/blog\/creare-pacchetti-nuget-con-azure-pipelines\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blexin.com\/it\/"},{"@type":"ListItem","position":2,"name":"Creare pacchetti NuGet con Azure Pipelines"}]},{"@type":"WebSite","@id":"https:\/\/blexin.com\/it\/#website","url":"https:\/\/blexin.com\/it\/","name":"Blexin","description":"Con noi \u00e8 semplice","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blexin.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d","name":"Antonio Liccardi","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g","caption":"Antonio Liccardi"},"url":"https:\/\/blexin.com\/it\/author\/antonio-liccardiblexin-com\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png?fit=1024%2C608&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pcyUBx-7m5","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/28277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/users\/196716243"}],"replies":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/comments?post=28277"}],"version-history":[{"count":7,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/28277\/revisions"}],"predecessor-version":[{"id":28309,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/28277\/revisions\/28309"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media\/28278"}],"wp:attachment":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media?parent=28277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/categories?post=28277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/tags?post=28277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}