{"id":28310,"date":"2019-09-11T00:00:00","date_gmt":"2019-09-10T22:00:00","guid":{"rendered":"https:\/\/blexin.com\/creare-pacchetti-nuget-con-azure-pipelines\/"},"modified":"2021-05-20T20:15:13","modified_gmt":"2021-05-20T18:15:13","slug":"creating-nuget-packages-with-azure-pipelines","status":"publish","type":"post","link":"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/","title":{"rendered":"Creating NuGet packages with 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=\"28279\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/attachment\/fe058e1c-2dbb-4dc9-b70e-5133299174c5-2\/\" 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-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/fe058e1c-2dbb-4dc9-b70e-5133299174c5.png?fit=300%2C178&amp;ssl=1\" 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-28279\" 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\">Continuous Deployment of Nuget Packages<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In the previous articles, we have seen how to create Nuget packages for our software and how to share them with other people using Azure Artifacts. Moreover, we explained a few best practices that could be helpful, when we want to version our packages. In this last article, we will automate the whole process to create and version them using Azure Pipelines.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is Azure Pipelines?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Azure Pipelines helps us to create release pipelines for our software. The use of Azure Pipelines has a lot of benefits:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>It is cross-platform;<\/li><li>We can compile and distribute the code, written using different languages and different platforms (i.e.: web, mobile);<\/li><li>There are on-premise or hosted agents available;<\/li><li>We can create a release pipeline using YAML;<\/li><li>it has Good extendibility thanks to a marketplace;<\/li><li>It is free for freelancers or small teams (more info&nbsp;<a href=\"https:\/\/azure.microsoft.com\/en-us\/pricing\/details\/devops\/azure-devops-services\/\" rel=\"noreferrer noopener\" target=\"_blank\">here<\/a>);<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In Azure Pipelines there is a distinct separation between build and release process: the former creates artifacts, the latter distributes them on different stages.<br>Another interesting feature about Azure Pipelines is its simplicity: the user experience or the pipeline status is always neat and easy to understand. Please note that Azure Pipelines is only one of the many products available in&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\">Create a build for Nuget Packages<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s see how to create Nuget packages. We move to the Azure Pipelines section in Azure DevOps and create a new pipeline through the button \u201cNew\u201d and then \u201cBuild Pipeline\u201d. Inside the wizard, we set the code repository and then we can create both a build based on a YAML pipeline, or a build using the&nbsp;<strong>classic editor<\/strong>&nbsp;based on task composition. We are gonna explain the second option.<\/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=\"28283\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/attachment\/1-2-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-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/1.png?fit=300%2C255&amp;ssl=1\" 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-28283\" 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><em>Available types of pipeline<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">After choosing the repository, we define which technology we need to compile: let\u2019s pick \u201c.NET Desktop\u201d as pipeline 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=\"28285\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/attachment\/2-1-2\/\" 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-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2-1.png?fit=300%2C97&amp;ssl=1\" 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-28285\" 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><em>Types of build templates<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Then we provide some information such as (see next picture):<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Build name;<\/li><li>Agent pool (hosted or private);<\/li><li>Agent Specification to compile our project based on development platform used(i.e.: .NET Framework, Node.js).<\/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=\"28288\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/attachment\/3-1-2\/\" 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-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3-1.png?fit=300%2C144&amp;ssl=1\" 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-28288\" 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><em>Example of a build definition<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Now, we are ready to edit our build template to create the Nuget Package to upload to our feed. Firstly, we replace the task \u201cCopy Files to: $(build.artifactstagingdirectory)\u201d with a new task of type \u201cNuget\u201d using the button \u201c+\u201d. Once added, we can set a few parameters such as:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>\u201cPack\u201d as the command to execute;<\/li><li>The path of the projects or the nuspec file, that we have seen how to create in one of the previous articles. If we take a look at the next picture, we see that, thanks to a string pattern, we can choose all the projects inside our solution;<\/li><li>To add all referenced projects in our packages using the \u201cInclude referenced projects\u201d flag.<\/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=\"28290\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/attachment\/4-1-2\/\" 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-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/4-1.png?fit=300%2C171&amp;ssl=1\" 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-28290\" 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><em>The build modified to create Nuget packages<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We are ready to execute our build using the button \u201cQueue\u201d. After the execution, inside the summary page, we click on the \u201cArtifacts\u201d button to display the generated nupkg.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Nuget packages versioning<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The next step is to package versioning: we will use GitVersion to generate version numbers. Sure enough, thanks to an extension, it is possible to automate number generation in our build version following SemVer principles. We just need to add a task using the \u201c+\u201d button and search for the term \u201cGitVersion\u201d in the search box. If it is not already present in our account, we can install it using the marketplace (more info at this&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/devops\/marketplace\/install-extension?view=azure-devops\" rel=\"noreferrer noopener\" target=\"_blank\">link<\/a>).<\/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=\"28292\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/attachment\/5-1-2\/\" 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-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/5-1.png?fit=300%2C115&amp;ssl=1\" 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-28292\" 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><em>Adding GitVersion to the build process<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Now, let\u2019s select the GitVersion task and set the following parameters:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>the path to the GitVersion.yml (as created in the previous article);<\/li><li>enable the 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=\"28295\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/attachment\/6-1-2\/\" 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-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/6-1.png?fit=300%2C86&amp;ssl=1\" 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-28295\" 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><em>GitVersion configuration<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Moreover, we must edit GitVersion.yml with the following line to set the right versioning format:<\/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\">This way, the&nbsp;<strong>AssemblyInformationalVersion<\/strong>&nbsp;field is set using the right version number format, according to what we discussed in the last article.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Upload Nuget packages to Azure Artifacts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We are finally ready to upload our packages to the Azure Artifacts feed. For this purpose, we create a new release, that starts right after the build, which retrieves all nupkgs and upload them to the feed. In the build summary page, we press the \u201cRelease\u201d button to create a new deploy pipeline.<\/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=\"28297\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/attachment\/7-1-2\/\" 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-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/7-1.png?fit=300%2C63&amp;ssl=1\" 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-28297\" 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><em>The button to create e new release<\/em><br><\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In this case, we use an empty template through the \u201c<strong>Empty Job<\/strong>\u201d button. We should see something like this:<\/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=\"28300\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/attachment\/8-1-2\/\" 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-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/8-1.png?fit=300%2C81&amp;ssl=1\" 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-28300\" 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><em>Release basic settings<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Next steps are:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Set as stage name \u201cNuget Feed\u201d;<\/li><li>Add a task in this stage to upload our packages.<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">For the second step, we press on the \u201c1 job, 0 task\u201d link to switch to the release process detail page. This window is fairly similar to the build definition page and allows us to use tasks to define a release process. Also in this situation, we have an agent (private or hosted) that will execute the deploy process.<br>Let\u2019s add a new task named \u201cNuget\u201d using again the \u201c+\u201d button and set it as in the following picture:<\/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=\"28302\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/attachment\/9-1-2\/\" 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-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/9-1.png?fit=300%2C123&amp;ssl=1\" 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-28302\" 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><em>Nuget push task parameters<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Firstly, we set the \u201cpush\u201d command (1). This command will retrieve all&nbsp;<strong>nupkg<\/strong>&nbsp;files in the build artifacts using the search pattern \u201c\/**\/*.nupkg\u201d (2) and it will upload them on the selected \u201cTarget feed\u201d (3). Lastly, we enable the \u201cAllow duplicates to be skipped\u201d flag (4) to avoid that the release will generate an error in case that a version is already present in the feed. We are ready to launch our release using \u201cCreate Release\u201d button and to verify that all packages have been correctly uploaded on the 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=\"28305\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/attachment\/10-2-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-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/10-2.png?fit=300%2C178&amp;ssl=1\" 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-28305\" 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><em>Release summary<\/em><\/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=\"28307\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/attachment\/11-2\/\" 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-medium-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/11.png?fit=300%2C90&amp;ssl=1\" 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-28307\" 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><em>A Nuget package correctly pushed to the feed<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em><em>Happy versioning to y\u2019all!<\/em><\/em><\/p>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>Let&#8217;s see how to automate the Nuget packages creation using Azure Pipelines of the Azure DevOps platform<\/p>\n","protected":false},"author":196716243,"featured_media":28279,"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_post_was_ever_published":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},"categories":[688637524],"tags":[688637443,688637444],"class_list":["post-28310","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-en","tag-raptor-en","tag-webright-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Creating NuGet packages with 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\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating NuGet packages with Azure Pipelines - Blexin\" \/>\n<meta property=\"og:description\" content=\"Let&#039;s see how to automate the Nuget packages creation using Azure Pipelines of the Azure DevOps platform\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-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:13+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=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Antonio Liccardi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/\"},\"author\":{\"name\":\"Antonio Liccardi\",\"@id\":\"https:\/\/blexin.com\/en\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d\"},\"headline\":\"Creating NuGet packages with Azure Pipelines\",\"datePublished\":\"2019-09-10T22:00:00+00:00\",\"dateModified\":\"2021-05-20T18:15:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/\"},\"wordCount\":965,\"image\":{\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-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\":[\"Raptor\",\"Webright\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/\",\"url\":\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/\",\"name\":\"Creating NuGet packages with Azure Pipelines - Blexin\",\"isPartOf\":{\"@id\":\"https:\/\/blexin.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-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:13+00:00\",\"author\":{\"@id\":\"https:\/\/blexin.com\/en\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d\"},\"breadcrumb\":{\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-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\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blexin.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating NuGet packages with Azure Pipelines\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blexin.com\/en\/#website\",\"url\":\"https:\/\/blexin.com\/en\/\",\"name\":\"Blexin\",\"description\":\"Con noi \u00e8 semplice\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blexin.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blexin.com\/en\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d\",\"name\":\"Antonio Liccardi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@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\/en\/author\/antonio-liccardiblexin-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creating NuGet packages with 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\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/","og_locale":"en_US","og_type":"article","og_title":"Creating NuGet packages with Azure Pipelines - Blexin","og_description":"Let's see how to automate the Nuget packages creation using Azure Pipelines of the Azure DevOps platform","og_url":"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/","og_site_name":"Blexin","article_published_time":"2019-09-10T22:00:00+00:00","article_modified_time":"2021-05-20T18:15:13+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":{"Written by":"Antonio Liccardi","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/#article","isPartOf":{"@id":"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/"},"author":{"name":"Antonio Liccardi","@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d"},"headline":"Creating NuGet packages with Azure Pipelines","datePublished":"2019-09-10T22:00:00+00:00","dateModified":"2021-05-20T18:15:13+00:00","mainEntityOfPage":{"@id":"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/"},"wordCount":965,"image":{"@id":"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-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":["Raptor","Webright"],"articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/","url":"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/","name":"Creating NuGet packages with Azure Pipelines - Blexin","isPartOf":{"@id":"https:\/\/blexin.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/#primaryimage"},"image":{"@id":"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-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:13+00:00","author":{"@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d"},"breadcrumb":{"@id":"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blexin.com\/en\/blog-en\/creating-nuget-packages-with-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\/en\/blog-en\/creating-nuget-packages-with-azure-pipelines\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blexin.com\/en\/"},{"@type":"ListItem","position":2,"name":"Creating NuGet packages with Azure Pipelines"}]},{"@type":"WebSite","@id":"https:\/\/blexin.com\/en\/#website","url":"https:\/\/blexin.com\/en\/","name":"Blexin","description":"Con noi \u00e8 semplice","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blexin.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d","name":"Antonio Liccardi","image":{"@type":"ImageObject","inLanguage":"en-US","@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\/en\/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-7mC","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/28310","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/users\/196716243"}],"replies":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/comments?post=28310"}],"version-history":[{"count":6,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/28310\/revisions"}],"predecessor-version":[{"id":32915,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/28310\/revisions\/32915"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/media\/28279"}],"wp:attachment":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/media?parent=28310"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/categories?post=28310"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/tags?post=28310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}