{"id":28843,"date":"2019-04-16T00:00:00","date_gmt":"2019-04-15T22:00:00","guid":{"rendered":"https:\/\/blexin.com\/versionare-i-pacchetti-nuget\/"},"modified":"2021-05-20T20:16:31","modified_gmt":"2021-05-20T18:16:31","slug":"versioning-of-nuget-packages","status":"publish","type":"post","link":"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/","title":{"rendered":"Versioning of NuGet packages"},"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=\"28829\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/attachment\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91.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=\"2a5041f5-ee4c-4a47-b81f-e1408ad41a91\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91.png?fit=1024%2C608&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91.png?resize=1024%2C608&#038;ssl=1\" alt=\"\" class=\"wp-image-28829\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91-980x582.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91-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<p class=\"wp-block-paragraph\">In recent years, in Blexin we designed a very modular CMS with high performances, which allows the simplification of the web portals\u2019 development, regardless of the storage used for data persistence. WebRight, this is the CMS name, uses different plugins, depending on functionalities needed in the portal. The storage abstraction is possible thanks to&nbsp;<strong>Raptor<\/strong>, another framework also developed by Blexin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">During the development of these products, we felt the need to have a good process to version the dependences between the plugins, to avoid winding up in the classic problem of&nbsp;<em>dependency hell<\/em>&nbsp;(more info at this&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Dependency_hell\" target=\"_blank\" rel=\"noreferrer noopener\">link<\/a>). In this article, I would like to explain how we start versioning the dependences of our frameworks. In the next articles, we will see instead different practices we adopted to arrive at the process&nbsp;we use for the versioning of our software.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"stabilire-un-processo-di-versionamento\">How to establish a versioning process<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">During&nbsp;software development, versioning is usually a hot topic. Generally, the software versioning makes sense when we distribute libraries, or we expose API. It can happen, however, to extend this concept to all our software, even though in some cases (i.e. a web application) it may make no sense, since the main user of our product (the customer) has no real&nbsp;interest in the number of versions. During the development of WebRight and Raptor framework, we establish immediately a versioning method for our plugins\u2019 releases and, much important, for libraries shared between the two frameworks. We start to define a&nbsp;<strong>process<\/strong>&nbsp;to do that: in particular, we need to create rules to generate version number. Once we identify&nbsp;and share them, we start with the versioning of our libraries, with the use of the attribute&nbsp;<strong>AssemblyVersion&nbsp;<\/strong>in the class&nbsp;<em>AssemblyInfo.cs<\/em>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\n\/\/ Version information for an assembly consists of the following four values:\n\/\/\n\/\/\u00a0\u00a0\u00a0\u00a0\u00a0 Major Version\n\/\/\u00a0\u00a0\u00a0\u00a0\u00a0 Minor Version \n\/\/\u00a0\u00a0\u00a0\u00a0\u00a0 Build Number\n\/\/\u00a0\u00a0\u00a0\u00a0\u00a0 Revision\n\/\/\n\/\/ You can specify all the values or you can default the Revision and Build Numbers \n\/\/ by using the &#039;*&#039; as shown below:\n&#x5B;assembly: AssemblyVersion(&quot;1.0.*&quot;)]\n&#x5B;assembly: AssemblyFileVersion(&quot;1.0.*&quot;)]\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">We choose to use the following&nbsp;rules:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Major<\/strong>&nbsp;is for us a number that will be incremented in event of a breaking change, something that is not compatible with previous versions of the library;<\/li><li><strong>Minor<\/strong>&nbsp;is for us a new feature, that doesn\u2019t break with previous versions, or is a bugfix.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In this context, the asterisk permits to generate the&nbsp;<strong>Build<\/strong>&nbsp;and&nbsp;<strong>Revision&nbsp;<\/strong>values automatically, release us from the task. We start with the manually set of these values in the class and, even if this might let you turn up your nose, you need to understand that there\u2019s nothing wrong in doing it, provided that you\u2019ll do it with&nbsp;<em>a criteria and with a well defined process<\/em>. Of course, once the process has been established, it would be silly not to automate it with a build pipeline, to totally benefit from it.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"come-versionare-un-pacchetto-nuget\">How to make the versioning of a NuGet package<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">As we adopt this process, it was then easy to make and share the NuGet packages within the team. For example, it is possible to use&nbsp;<a href=\"https:\/\/github.com\/NuGetPackageExplorer\/NuGetPackageExplorer\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>NuGet Package Explorer<\/strong><\/a>&nbsp;or&nbsp;<a href=\"https:\/\/chocolatey.org\/packages\/NuGet.CommandLine\/4.9.3\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Nuget CLI<\/strong><\/a>&nbsp;to simplify the whole procedure. Once we added all the details of our project to the flle AssemblyInfo.cs and compiled it, we can generate the file nuspec&nbsp;in the same folder and use the CLI with the following command:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nnuget spec\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Once the nuspec has been created, we can execute the following command to create the NuGet package:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nnuget pack nome_progetto.csproj -IncludeReferencedProjects\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">In particular, the flag&nbsp;<strong>-IncludeReferencedProjects<\/strong>&nbsp;allows us to include all the dependences in the final package. Through the NuGet Package Explorer we may even open&nbsp;the NuGet package generated, to verify the content:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"613\" height=\"1024\" data-attachment-id=\"28832\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/attachment\/1-3-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/1-3.png?fit=846%2C1414&amp;ssl=1\" data-orig-size=\"846,1414\" 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-3\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/1-3.png?fit=613%2C1024&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/1-3.png?resize=613%2C1024&#038;ssl=1\" alt=\"\" class=\"wp-image-28832\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/1-3-613x1024.png 613w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/1-3-480x802.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 613px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Once the definition stage is completed, we are ready to share our package on a NuGet feed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"pushare-un-pacchetto-su-nuget\">How to push a package on NuGet<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If we use Azure DevOps we can easily create a NuGet feed inside the&nbsp;<strong>Artifacts&nbsp;<\/strong>section.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"689\" height=\"782\" data-attachment-id=\"28835\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/attachment\/2-4-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2-4.png?fit=689%2C782&amp;ssl=1\" data-orig-size=\"689,782\" 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-4\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2-4.png?fit=689%2C782&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2-4.png?resize=689%2C782&#038;ssl=1\" alt=\"\" class=\"wp-image-28835\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/2-4.png 689w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/2-4-480x545.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 689px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Once the feed has been created, we need to generate a token in our account settings to connect and push the packages. Inside the page of connection to the feed, is possible to find all information and even commands needed&nbsp;to make the push:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"990\" height=\"693\" data-attachment-id=\"28837\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/attachment\/3-4-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3-4.png?fit=990%2C693&amp;ssl=1\" data-orig-size=\"990,693\" 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-4\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3-4.png?fit=990%2C693&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/3-4.png?resize=990%2C693&#038;ssl=1\" alt=\"\" class=\"wp-image-28837\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/3-4.png 990w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/3-4-980x686.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/3-4-480x336.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 990px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We only need now to upload the package, using the command:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nNuGet push -Source &quot;&lt;Source&gt;&quot; -ApyKey &lt;Key&gt; nome_package.nupkg\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">As soon as we created our package, we can find different options:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"712\" height=\"964\" data-attachment-id=\"28839\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/attachment\/4-4-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/4-4.png?fit=712%2C964&amp;ssl=1\" data-orig-size=\"712,964\" 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-4\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/4-4.png?fit=712%2C964&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/4-4.png?resize=712%2C964&#038;ssl=1\" alt=\"\" class=\"wp-image-28839\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/4-4.png 712w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/4-4-480x650.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 712px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">IIn the end, we can connect&nbsp;to the feed from Visual Studio&nbsp;from&nbsp;<strong>Tools Menu -&gt; NuGet Package Manager -&gt; Package Manager Settings<\/strong>&nbsp;and, when we search for a package, we can display both packages coming from our feed and those coming from others and we can import them in our projects.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"qual\u00e8-il-prossimo-passo\">What&#8217;s next?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">In this article, I describe the first step we did&nbsp;in our company to arrange the versioning of our NuGet packages. In the next article, we will discover how the use of git and more specifically GitFlow helped us to simplify this process.<\/p>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>Learn how to manage the versioning of our source code using the development process and distribute it through NuGet packages<\/p>\n","protected":false},"author":196716243,"featured_media":28829,"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":[688637524],"tags":[688637381,688637443,688637444],"class_list":["post-28843","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-en","tag-azure-en","tag-raptor-en","tag-webright-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Versioning of NuGet packages - 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\/versioning-of-nuget-packages\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Versioning of NuGet packages - Blexin\" \/>\n<meta property=\"og:description\" content=\"Learn how to manage the versioning of our source code using the development process and distribute it through NuGet packages\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/\" \/>\n<meta property=\"og:site_name\" content=\"Blexin\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-15T22:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-20T18:16:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i1.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91.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=\"4 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\\\/versioning-of-nuget-packages\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/versioning-of-nuget-packages\\\/\"},\"author\":{\"name\":\"Antonio Liccardi\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#\\\/schema\\\/person\\\/e1e90a04ec265b5c0712c5918ba01e8d\"},\"headline\":\"Versioning of NuGet packages\",\"datePublished\":\"2019-04-15T22:00:00+00:00\",\"dateModified\":\"2021-05-20T18:16:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/versioning-of-nuget-packages\\\/\"},\"wordCount\":814,\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/versioning-of-nuget-packages\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91.png?fit=1024%2C608&ssl=1\",\"keywords\":[\"Azure\",\"Raptor\",\"Webright\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/versioning-of-nuget-packages\\\/\",\"url\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/versioning-of-nuget-packages\\\/\",\"name\":\"Versioning of NuGet packages - Blexin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/versioning-of-nuget-packages\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/versioning-of-nuget-packages\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91.png?fit=1024%2C608&ssl=1\",\"datePublished\":\"2019-04-15T22:00:00+00:00\",\"dateModified\":\"2021-05-20T18:16:31+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#\\\/schema\\\/person\\\/e1e90a04ec265b5c0712c5918ba01e8d\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/versioning-of-nuget-packages\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/versioning-of-nuget-packages\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/versioning-of-nuget-packages\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91.png?fit=1024%2C608&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91.png?fit=1024%2C608&ssl=1\",\"width\":1024,\"height\":608},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/versioning-of-nuget-packages\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blexin.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Versioning of NuGet packages\"}]},{\"@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":"Versioning of NuGet packages - 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\/versioning-of-nuget-packages\/","og_locale":"en_US","og_type":"article","og_title":"Versioning of NuGet packages - Blexin","og_description":"Learn how to manage the versioning of our source code using the development process and distribute it through NuGet packages","og_url":"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/","og_site_name":"Blexin","article_published_time":"2019-04-15T22:00:00+00:00","article_modified_time":"2021-05-20T18:16:31+00:00","og_image":[{"width":1024,"height":608,"url":"https:\/\/i1.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91.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":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/#article","isPartOf":{"@id":"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/"},"author":{"name":"Antonio Liccardi","@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d"},"headline":"Versioning of NuGet packages","datePublished":"2019-04-15T22:00:00+00:00","dateModified":"2021-05-20T18:16:31+00:00","mainEntityOfPage":{"@id":"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/"},"wordCount":814,"image":{"@id":"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91.png?fit=1024%2C608&ssl=1","keywords":["Azure","Raptor","Webright"],"articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/","url":"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/","name":"Versioning of NuGet packages - Blexin","isPartOf":{"@id":"https:\/\/blexin.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/#primaryimage"},"image":{"@id":"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91.png?fit=1024%2C608&ssl=1","datePublished":"2019-04-15T22:00:00+00:00","dateModified":"2021-05-20T18:16:31+00:00","author":{"@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d"},"breadcrumb":{"@id":"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/#primaryimage","url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91.png?fit=1024%2C608&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91.png?fit=1024%2C608&ssl=1","width":1024,"height":608},{"@type":"BreadcrumbList","@id":"https:\/\/blexin.com\/en\/blog-en\/versioning-of-nuget-packages\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blexin.com\/en\/"},{"@type":"ListItem","position":2,"name":"Versioning of NuGet packages"}]},{"@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\/2a5041f5-ee4c-4a47-b81f-e1408ad41a91.png?fit=1024%2C608&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pcyUBx-7vd","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/28843","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=28843"}],"version-history":[{"count":4,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/28843\/revisions"}],"predecessor-version":[{"id":32917,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/28843\/revisions\/32917"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/media\/28829"}],"wp:attachment":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/media?parent=28843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/categories?post=28843"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/tags?post=28843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}