[{"data":1,"prerenderedAt":906},["ShallowReactive",2],{"i-feather:search":3,"i-feather:x":8,"i-feather:moon":10,"i-feather:sun":12,"i-fa-brands:youtube":14,"i-fa-brands:twitch":18,"i-fa-brands:github":20,"i-fa-brands:linkedin":23,"i-fa-brands:stack-overflow":26,"i-simple-icons:bluesky":29,"i-fa-brands:mastodon":31,"i-fa-regular:envelope":33,"i-fa-solid:rss":35,"post-\u002Fcleaning-up-csproj\u002F":37,"post-navigation":505,"i-fa-solid:share-alt":886,"i-fa-brands:facebook":888,"i-fa-brands:twitter":890,"i-fa-brands:reddit":892,"i-fa-brands:patreon":894,"i-simple-icons:buymeacoffee":896,"i-fa-brands:paypal":898,"i-fa-regular:question-circle":900,"i-feather:arrow-left":902,"i-feather:arrow-right":904},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"\u002F>\u003Cpath d=\"m21 21l-4.35-4.35\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M18 6L6 18M6 6l12 12\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 12.79A9 9 0 1 1 11.21 3A7 7 0 0 0 21 12.79\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"5\"\u002F>\u003Cpath d=\"M12 1v2m0 18v2M4.22 4.22l1.42 1.42m12.72 12.72l1.42 1.42M1 12h2m18 0h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":15,"height":16,"rotate":4,"vFlip":6,"hFlip":6,"body":17},576,512,"\u003Cpath fill=\"currentColor\" d=\"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597c-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821c11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305m-317.51 213.508V175.185l142.739 81.205z\"\u002F>",{"left":4,"top":4,"width":16,"height":16,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cpath fill=\"currentColor\" d=\"M391.17 103.47h-38.63v109.7h38.63ZM285 103h-38.63v109.75H285ZM120.83 0L24.31 91.42v329.16h115.83V512l96.53-91.42h77.25L487.69 256V0Zm328.24 237.75l-77.22 73.12h-77.24l-67.6 64v-64h-86.87V36.58h308.93Z\"\u002F>",{"left":4,"top":4,"width":21,"height":16,"rotate":4,"vFlip":6,"hFlip":6,"body":22},496,"\u003Cpath fill=\"currentColor\" d=\"M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2\"\u002F>",{"left":4,"top":4,"width":24,"height":16,"rotate":4,"vFlip":6,"hFlip":6,"body":25},448,"\u003Cpath fill=\"currentColor\" d=\"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3M135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5c0 21.3-17.2 38.5-38.5 38.5m282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7c-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5c67.2 0 79.7 44.3 79.7 101.9z\"\u002F>",{"left":4,"top":4,"width":27,"height":16,"rotate":4,"vFlip":6,"hFlip":6,"body":28},384,"\u003Cpath fill=\"currentColor\" d=\"M290.7 311L95 269.7L86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8l153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24l119.3 160.3l32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":30},"\u003Cpath fill=\"currentColor\" d=\"M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037c-.856 3.061-3.978 3.842-6.755 3.37c4.854.826 6.089 3.562 3.422 6.299c-5.065 5.196-7.28-1.304-7.847-2.97c-.104-.305-.152-.448-.153-.327c0-.121-.05.022-.153.327c-.568 1.666-2.782 8.166-7.847 2.97c-2.667-2.737-1.432-5.473 3.422-6.3c-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026\"\u002F>",{"left":4,"top":4,"width":24,"height":16,"rotate":4,"vFlip":6,"hFlip":6,"body":32},"\u003Cpath fill=\"currentColor\" d=\"M433 179.11c0-97.2-63.71-125.7-63.71-125.7c-62.52-28.7-228.56-28.4-290.48 0c0 0-63.72 28.5-63.72 125.7c0 115.7-6.6 259.4 105.63 289.1c40.51 10.7 75.32 13 103.33 11.4c50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7c56.12-6.7 105-41.3 111.23-72.9c9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175c25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5l11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1c23.71 27.3 18.4 53 18.4 175z\"\u002F>",{"left":4,"top":4,"width":16,"height":16,"rotate":4,"vFlip":6,"hFlip":6,"body":34},"\u003Cpath fill=\"currentColor\" d=\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48m0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49c-16.841 13.247-50.201 45.072-73.413 44.701c-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646c21.857 17.205 60.134 55.186 103.062 54.955c42.717.231 80.509-37.199 103.053-54.947c49.528-38.783 82.032-64.401 104.947-82.653V400z\"\u002F>",{"left":4,"top":4,"width":24,"height":16,"rotate":4,"vFlip":6,"hFlip":6,"body":36},"\u003Cpath fill=\"currentColor\" d=\"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041s64.04 28.673 64.04 64.041m175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018c111.832 7.284 201.473 96.702 208.772 208.772c.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79m144.249.288C439.596 229.677 251.465 40.445 16.503 32.01C7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999c191.179 7.839 344.627 161.316 352.465 352.465c.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504\"\u002F>",{"id":38,"title":39,"author":40,"body":41,"comments":460,"date":478,"dateModified":479,"description":480,"extension":481,"headings":482,"heroImage":492,"meta":493,"path":494,"permalink":494,"published":495,"stem":496,"tags":497,"timeToRead":504},"posts\u002Fposts\u002F2017\u002Fcleaning-up-csproj\u002Findex.md","Cleaning Up CSPROJ","Muhammad Rehan Saeed",{"type":42,"value":43,"toc":457},"minimark",[44,64,75,81,112,132,146,162,168,183,190,200,203,262,276,299,302,316,338,341,351,354,368,379,382,385,388,402,416,419,422,430,444,450,453],[45,46,50,56],"div",{"className":47},[48,49],"custom-block","tip",[51,52,55],"p",{"className":53},[54],"custom-block-title","TLDR",[51,57,58,59,63],{},"I show how to make ",[60,61,62],"code",{},"csproj"," XML concise and pretty for hand editing.",[51,65,66,67,70,71,74],{},"I used ",[60,68,69],{},"project.json"," since Beta 7 and got used to hand editing it, I've continues that practice with ",[60,72,73],{},".csproj"," files and I think you should too. Recent version of Visual Studio have made a lot of performance improvements but it's still a lot slower than hand editing a text file.",[51,76,77,78,80],{},"The NuGet package screen in Visual Studio is achingly slow. Bulk editing takes seconds. I can update NuGet package references, package properties etc. all in one go, rather than visiting multiple disparate UI's in Visual Studio. Finally, I create new projects by copying and pasting an existing ",[60,79,62],{}," and tweaking it. Much faster than Visual Studio's New Project dialogue.",[82,83,86,92],"h1",{"id":84,"data-section-heading":85},"install-project-file-tools","",[87,88,91],"span",{"className":89},[90],"heading__text","Install Project File Tools",[93,94,97],"anchor-link",{"href":95,"label":96},"#install-project-file-tools","Link to this section",[98,99,106],"svg",{"xmlns":100,"xmlns:xlink":101,"viewBox":102,"version":103,"width":104,"height":104,"aria-hidden":105},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink","0 0 16 16","1.1",22,"true",[107,108],"path",{"fill":109,"fill-rule":110,"d":111},"currentColor","evenodd","M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z",[51,113,114,115,125,126,128,129,131],{},"The ",[116,117,124],"a",{"href":118,"rel":119,"target":123},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=ms-madsk.ProjectFileTools",[120,121,122],"nofollow","noopener","noreferrer","_blank","Project File Tools"," Visual Studio extension gives you intellisense for NuGet packages in the new ",[60,127,62],{}," projects. Unfortunately, due to MSBuild being around for so long and being so complex, intellisense for the rest of the project XML consists of a massive list of possible properties so it becomes less useful than it was in ",[60,130,69],{},".",[82,133,135,139],{"id":134,"data-section-heading":85},"dotnet-migrate---wow-thats-ugly",[87,136,138],{"className":137},[90],"dotnet migrate - Wow that's ugly!",[93,140,142],{"href":141,"label":96},"#dotnet-migrate---wow-thats-ugly",[98,143,144],{"xmlns":100,"xmlns:xlink":101,"viewBox":102,"version":103,"width":104,"height":104,"aria-hidden":105},[107,145],{"fill":109,"fill-rule":110,"d":111},[51,147,148,149,151,152,154,155,158,159,161],{},"After migrating my ",[60,150,69],{}," projects to ",[60,153,62],{}," using Visual Studio 2017 (You could also use the ",[60,156,157],{},"dotnet migrate"," command), I found that that the XML generated was pretty ugly and contained superfluous elements you just didn't need. Here is an example ",[60,160,62],{}," library project straight after migration:",[163,164],"pre",{"className":165,"language":166,"meta":85,"style":85,"html":167},"language-xml shiki shiki-themes light-plus monokai","xml","\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Project\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Sdk\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Microsoft.NET.Sdk\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PropertyGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Description\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">...\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Description\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Copyright\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Copyright © Muhammad Rehan Saeed. All rights Reserved\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Copyright\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">AssemblyTitle\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Dotnet Boxed Framework\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">AssemblyTitle\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">VersionPrefix\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">2.2.2\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">VersionPrefix\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Authors\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Muhammad Rehan Saeed (RehanSaeed.com)\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Authors\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">TargetFrameworks\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">netstandard1.6;net461\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">TargetFrameworks\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">TreatWarningsAsErrors\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">true\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">TreatWarningsAsErrors\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateDocumentationFile\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">true\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateDocumentationFile\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">AssemblyName\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Boxed.AspNetCore\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">AssemblyName\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">AssemblyOriginatorKeyFile\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">..\u002F..\u002F..\u002FKey.snk\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">AssemblyOriginatorKeyFile\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">SignAssembly\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">true\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">SignAssembly\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PublicSign\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Condition\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\" '$(OS)' != 'Windows_NT' \"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">true\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PublicSign\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageId\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Boxed.AspNetCore\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageId\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageTags\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">ASP.NET;ASP.NET Core;MVC;Boxed;Muhammad Rehan Saeed;Framework\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageTags\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReleaseNotes\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Updated to ASP.NET Core 1.1.2.\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReleaseNotes\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageIconUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">https:\u002F\u002Fraw.githubusercontent.com\u002FDotnet-Boxed\u002FFramework\u002Fmain\u002FImages\u002FIcon.png\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageIconUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageProjectUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">https:\u002F\u002Fgithub.com\u002FDotnet-Boxed\u002FFramework\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageProjectUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageLicenseUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">https:\u002F\u002Fgithub.com\u002FDotnet-Boxed\u002FFramework\u002Fblob\u002Fmain\u002FLICENSE\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageLicenseUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageRequireLicenseAcceptance\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">true\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageRequireLicenseAcceptance\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">RepositoryType\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">git\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">RepositoryType\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">RepositoryUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">https:\u002F\u002Fgithub.com\u002FDotnet-Boxed\u002FFramework.git\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">RepositoryUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateAssemblyConfigurationAttribute\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">false\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateAssemblyConfigurationAttribute\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateAssemblyCompanyAttribute\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">false\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateAssemblyCompanyAttribute\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateAssemblyProductAttribute\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">false\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateAssemblyProductAttribute\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PropertyGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ProjectReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"..\\Framework\\Framework.csproj\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Microsoft.AspNetCore.Mvc.Abstractions\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"1.1.2\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Microsoft.AspNetCore.Mvc.Core\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"1.1.2\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Microsoft.Extensions.Caching.Abstractions\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"1.1.1\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Microsoft.Extensions.Configuration.Binder\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"1.1.1\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Newtonsoft.Json\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"9.0.1\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"StyleCop.Analyzers\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"1.0.0\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">      &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PrivateAssets\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">All\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PrivateAssets\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Condition\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\" '$(TargetFramework)' == 'netstandard1.6' \"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"System.Xml.XDocument\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"4.3.0\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Condition\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\" '$(TargetFramework)' == 'net461' \"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Reference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"System.ServiceModel\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Reference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"System.Xml\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Reference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"System.Xml.Linq\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Reference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"System\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Reference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Microsoft.CSharp\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Project\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>",[169,170,172,176],"h2",{"id":171,"data-section-heading":85},"understanding-new-csproj-projects",[87,173,175],{"className":174},[90],"Understanding new csproj Projects",[93,177,179],{"href":178,"label":96},"#understanding-new-csproj-projects",[98,180,181],{"xmlns":100,"xmlns:xlink":101,"viewBox":102,"version":103,"width":104,"height":104,"aria-hidden":105},[107,182],{"fill":109,"fill-rule":110,"d":111},[51,184,185,186,189],{},"The top of the project contains a new SDK property. This imports some MSBuild targets and props files in your ",[60,187,188],{},"dotnet"," installation folder shown below:",[51,191,192],{},[193,194],"img",{"alt":195,"src":196,"width":197,"height":198,"loading":199},"dotnet SDK's","\u002Fcontent-images\u002Fposts\u002F2017\u002Fcleaning-up-csproj\u002Fimages\u002FDotnet-SDKs.png",989,422,"lazy",[51,201,202],{},"If you root around in those files, you can find defaults for all kinds of settings. Here are some of the nuggets I discovered about the web projects:",[204,205,206,217,223,237,244,250],"ul",{},[207,208,114,209,212,213,216],"li",{},[60,210,211],{},"NETStandard.Library"," version ",[60,214,215],{},"1.6.1"," NuGet package is referenced for you by default.",[207,218,114,219,222],{},[60,220,221],{},"wwwroot"," folder is excluded from compilation but included in the published output.",[207,224,225,228,229,232,233,236],{},[60,226,227],{},"web.config",", ",[60,230,231],{},".cshtml"," and ",[60,234,235],{},".json"," files are published by default.",[207,238,239,240,243],{},"Server garbage collection is turned on by default using the ",[60,241,242],{},"ServerGarbageCollection"," setting.",[207,245,246,249],{},[60,247,248],{},"PreserveCompilationContext"," is set to true by default.",[207,251,252,228,255,232,258,261],{},[60,253,254],{},"node_modules",[60,256,257],{},"jspm_packages",[60,259,260],{},"bower_components"," are excluded by default.",[169,263,265,269],{"id":264,"data-section-heading":85},"assemblyinfocs-is-partially-dead",[87,266,268],{"className":267},[90],"AssemblyInfo.cs is Partially Dead",[93,270,272],{"href":271,"label":96},"#assemblyinfocs-is-partially-dead",[98,273,274],{"xmlns":100,"xmlns:xlink":101,"viewBox":102,"version":103,"width":104,"height":104,"aria-hidden":105},[107,275],{"fill":109,"fill-rule":110,"d":111},[51,277,278,279,282,283,285,286,288,289,292,293,295,296,298],{},"You don't need ",[60,280,281],{},"AssemblyInfo.cs"," anymore by default as the ",[60,284,62],{}," Package settings also set many of the assembly attributes. In fact, you didn't really need it with ",[60,287,69],{}," either but the default templates mostly included it for some reason. However, I still found I needed to resurrect it in some cases to use the ",[60,290,291],{},"InternalsVisibleTo"," attribute. ",[60,294,291],{}," allows my unit test projects to access internal members in my library project. After a ",[60,297,157],{},", you may see the following elements which stop certain assembly attributes from being generated. You can safely delete these.",[163,300],{"className":165,"language":166,"meta":85,"style":85,"html":301},"\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PropertyGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"s1q82\">  &lt;!-- ...Omitted --&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateAssemblyConfigurationAttribute\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">false\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateAssemblyConfigurationAttribute\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateAssemblyCompanyAttribute\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">false\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateAssemblyCompanyAttribute\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateAssemblyProductAttribute\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">false\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateAssemblyProductAttribute\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PropertyGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>",[169,303,305,309],{"id":304,"data-section-heading":85},"remove-system-references",[87,306,308],{"className":307},[90],"Remove System.* References",[93,310,312],{"href":311,"label":96},"#remove-system-references",[98,313,314],{"xmlns":100,"xmlns:xlink":101,"viewBox":102,"version":103,"width":104,"height":104,"aria-hidden":105},[107,315],{"fill":109,"fill-rule":110,"d":111},[51,317,318,319,322,323,325,326,328,329,331,332,334,335,337],{},"You no longer need to explicitly reference ",[60,320,321],{},"System.*"," references in your ",[60,324,62],{},". David Fowler recommends that you always reference the ",[60,327,211],{}," meta NuGet package gives you most ",[60,330,321],{}," references. You get ",[60,333,211],{}," by default if you use the SDK attribute at the top of the ",[60,336,62],{},":",[163,339],{"className":165,"language":166,"meta":85,"style":85,"html":340},"\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Project\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Sdk\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Microsoft.NET.Sdk\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"s1q82\">  &lt;!-- ...Omitted --&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Project\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>",[51,342,343,344,347,348,350],{},"This meant that I could remove the entire code block below except ",[60,345,346],{},"System.ServiceModel"," because that reference is not given to you by the ",[60,349,211],{}," NuGet package.",[163,352],{"className":165,"language":166,"meta":85,"style":85,"html":353},"\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Condition\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\" '$(TargetFramework)' == 'netstandard1.6' \"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"System.Xml.XDocument\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"4.3.0\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Condition\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\" '$(TargetFramework)' == 'net461' \"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Reference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"System.ServiceModel\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Reference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"System.Xml\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Reference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"System.Xml.Linq\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Reference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"System\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Reference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Microsoft.CSharp\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>",[169,355,357,361],{"id":356,"data-section-heading":85},"turn-elements-into-attributes",[87,358,360],{"className":359},[90],"Turn Elements into Attributes",[93,362,364],{"href":363,"label":96},"#turn-elements-into-attributes",[98,365,366],{"xmlns":100,"xmlns:xlink":101,"viewBox":102,"version":103,"width":104,"height":104,"aria-hidden":105},[107,367],{"fill":109,"fill-rule":110,"d":111},[51,369,370,371,374,375,378],{},"For some reason dotnet migrate produces overly verbose XML in some cases by outputting XML elements instead of attributes. I have a NuGet reference to ",[60,372,373],{},"StyleCop.Analyzers"," which is a build time dependency and I don't want it to be output to my bin directory. You do this by setting the ",[60,376,377],{},"PrivateAssets"," property but you can turn this:",[163,380],{"className":165,"language":166,"meta":85,"style":85,"html":381},"\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"StyleCop.Analyzers\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"1.0.0\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PrivateAssets\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">All\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PrivateAssets\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>",[51,383,384],{},"Into this:",[163,386],{"className":165,"language":166,"meta":85,"style":85,"html":387},"\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"StyleCop.Analyzers\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> PrivateAssets\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"All\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"1.0.0\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>",[169,389,391,395],{"id":390,"data-section-heading":85},"label-your-sections",[87,392,394],{"className":393},[90],"Label your Sections",[93,396,398],{"href":397,"label":96},"#label-your-sections",[98,399,400],{"xmlns":100,"xmlns:xlink":101,"viewBox":102,"version":103,"width":104,"height":104,"aria-hidden":105},[107,401],{"fill":109,"fill-rule":110,"d":111},[51,403,404,405,232,408,411,412,415],{},"You can label your ",[60,406,407],{},"PropertyGroup",[60,409,410],{},"ItemGroup"," elements using the ",[60,413,414],{},"Label"," attribute:",[163,417],{"className":165,"language":166,"meta":85,"style":85,"html":418},"\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PropertyGroup\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Label\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Package\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"s1q82\">  &lt;!-- NuGet Packages Omitted --&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PropertyGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>",[51,420,421],{},"So the question becomes, how should we label them? Well, the convention I use is to use the same label names as the ones in Visual Studio's project properties screen:",[51,423,424],{},[193,425],{"alt":426,"src":427,"width":428,"height":429,"loading":199},"Project Properties Tabs","\u002Fcontent-images\u002Fposts\u002F2017\u002Fcleaning-up-csproj\u002Fimages\u002FProject-Properties-Tabs.png",113,171,[82,431,433,437],{"id":432,"data-section-heading":85},"the-end-result",[87,434,436],{"className":435},[90],"The End Result",[93,438,440],{"href":439,"label":96},"#the-end-result",[98,441,442],{"xmlns":100,"xmlns:xlink":101,"viewBox":102,"version":103,"width":104,"height":104,"aria-hidden":105},[107,443],{"fill":109,"fill-rule":110,"d":111},[51,445,446,447,449],{},"This is what my ",[60,448,62],{}," looks like at the end of all that. I've removed all the extra fluff you don't need and labelled the properties in a way that makes navigating the file with your eye that much quicker.",[163,451],{"className":165,"language":166,"meta":85,"style":85,"html":452},"\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Project\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Sdk\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Microsoft.NET.Sdk\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PropertyGroup\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Label\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Build\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">TargetFrameworks\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">netstandard1.6;net461\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">TargetFrameworks\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">TreatWarningsAsErrors\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">true\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">TreatWarningsAsErrors\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateDocumentationFile\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">true\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">GenerateDocumentationFile\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">CodeAnalysisRuleSet\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">..\u002F..\u002F..\u002FMinimumRecommendedRulesWithStyleCop.ruleset\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">CodeAnalysisRuleSet\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PropertyGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PropertyGroup\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Label\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Package\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">VersionPrefix\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">2.2.2\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">VersionPrefix\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Authors\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Muhammad Rehan Saeed (RehanSaeed.com)\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Authors\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Product\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Dotnet Boxed Framework\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Product\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Description\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">...\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Description\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Copyright\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Copyright © Muhammad Rehan Saeed. All rights Reserved\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Copyright\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageRequireLicenseAcceptance\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">true\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageRequireLicenseAcceptance\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageLicenseUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">https:\u002F\u002Fgithub.com\u002FDotnet-Boxed\u002FFramework\u002Fblob\u002Fmain\u002FLICENSE\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageLicenseUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageProjectUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">https:\u002F\u002Fgithub.com\u002FDotnet-Boxed\u002FFramework\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageProjectUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageIconUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">https:\u002F\u002Fraw.githubusercontent.com\u002FDotnet-Boxed\u002FFramework\u002Fmain\u002FImages\u002FIcon.png\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageIconUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">RepositoryUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">https:\u002F\u002Fgithub.com\u002FDotnet-Boxed\u002FFramework.git\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">RepositoryUrl\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">RepositoryType\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">git\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">RepositoryType\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageTags\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">ASP.NET;ASP.NET Core;MVC;Boxed;Muhammad Rehan Saeed;Framework\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageTags\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReleaseNotes\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Updated to ASP.NET Core 1.1.2.\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReleaseNotes\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PropertyGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sjLUg\">  \n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PropertyGroup\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Label\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Signing\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">SignAssembly\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">true\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">SignAssembly\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">AssemblyOriginatorKeyFile\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">..\u002F..\u002F..\u002FKey.snk\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">AssemblyOriginatorKeyFile\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PublicSign\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Condition\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\" '$(OS)' != 'Windows_NT' \"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">true\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PublicSign\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PropertyGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Label\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Project References\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ProjectReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"..\\Boilerplate\\Boilerplate.csproj\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Label\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Package References\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Microsoft.AspNetCore.Mvc.Abstractions\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"1.1.2\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Microsoft.AspNetCore.Mvc.Core\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"1.1.2\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Microsoft.Extensions.Caching.Abstractions\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"1.1.1\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Microsoft.Extensions.Configuration.Binder\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"1.1.1\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"Newtonsoft.Json\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"9.0.1\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">PackageReference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"StyleCop.Analyzers\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> PrivateAssets\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"All\"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Version\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"1.0.0\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Condition\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\" '$(TargetFramework)' == 'net461' \"\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Label\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\".NET 4.6.1 Package References\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">    &lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Reference\u003C\u002Fspan>\u003Cspan class=\"snDo4\"> Include\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">=\u003C\u002Fspan>\u003Cspan class=\"squEy\">\"System.ServiceModel\"\u003C\u002Fspan>\u003Cspan class=\"sNflI\"> \u002F&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">  &lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">ItemGroup\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">Project\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>",[454,455,456],"style",{},"html pre.shiki code .sNflI, html code.shiki .sNflI{--shiki-default:#800000;--shiki-dark:#F8F8F2}html pre.shiki code .sjbfc, html code.shiki .sjbfc{--shiki-default:#800000;--shiki-dark:#F92672}html pre.shiki code .snDo4, html code.shiki .snDo4{--shiki-default:#E50000;--shiki-dark:#A6E22E}html pre.shiki code .sjLUg, html code.shiki .sjLUg{--shiki-default:#000000;--shiki-dark:#F8F8F2}html pre.shiki code .squEy, html code.shiki .squEy{--shiki-default:#0000FF;--shiki-dark:#E6DB74}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s1q82, html code.shiki .s1q82{--shiki-default:#008000;--shiki-dark:#88846F}",{"title":85,"searchDepth":458,"depth":458,"links":459},2,[],{"issue":461,"comments":465},{"number":462,"title":463,"html_url":464},63,"[Comment] Cleaning Up CSPROJ","https:\u002F\u002Fgithub.com\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002F63",[466],{"id":467,"html_url":468,"body_html":469,"created_at":470,"updated_at":470,"author_association":471,"user":472,"reactions":476},627250772,"https:\u002F\u002Fgithub.com\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002F63#issuecomment-627250772","\n\u003Cp>\u003Ca target=\"_blank\" rel=\"nofollow noopener noreferrer\" href=\"https:\u002F\u002Fcamo.githubusercontent.com\u002F141960ae1a61d2bdea9db6bd41010cc414ac0e6d4ef20319a597d3a4bc3dae87\u002F68747470733a2f2f7777772e67726176617461722e636f6d2f6176617461722f34346537653061333434646634313531636261333564306462626464346261613f733d393626643d6d6d26723d67\">\u003Cimg alt=\"nemke\" height=\"40\" width=\"40\" src=\"https:\u002F\u002Fcamo.githubusercontent.com\u002F141960ae1a61d2bdea9db6bd41010cc414ac0e6d4ef20319a597d3a4bc3dae87\u002F68747470733a2f2f7777772e67726176617461722e636f6d2f6176617461722f34346537653061333434646634313531636261333564306462626464346261613f733d393626643d6d6d26723d67\" \u002F>\u003C\u002Fa> \u003Cstrong>nemke\u003C\u002Fstrong> commented on \u003Cstrong>2017-09-16 15:27:06\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>You do not need to keep \u003Ccode>AssemblyInfo\u003C\u002Fcode> class for \u003Ccode>InternalsVisibleTo\u003C\u002Fcode>. This can be achieved in \u003Ccode>*.csproj\u003C\u002Fcode> with the following code:\u003C\u002Fp>\n\u003Cp>\u003Ccode>FriendlyClassName\u003C\u002Fcode>\u003C\u002Fp>","2020-05-12T10:18:35Z","OWNER",{"login":473,"avatar_url":474,"html_url":475},"RehanSaeed","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2270364?v=4","https:\u002F\u002Fgithub.com\u002FRehanSaeed",{"url":477,"total_count":4,"+1":4,"-1":4,"laugh":4,"hooray":4,"confused":4,"heart":4,"rocket":4,"eyes":4},"https:\u002F\u002Fapi.github.com\u002Frepos\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002Fcomments\u002F627250772\u002Freactions","2017-03-18T00:00:00+00:00",null,"I show how to make the new Visual Studio 2017 .NET Core based csproj XML concise and pretty for hand editing.","md",[483,485,486,487,488,489,490,491],{"depth":484,"value":91},1,{"depth":484,"value":138},{"depth":458,"value":175},{"depth":458,"value":268},{"depth":458,"value":308},{"depth":458,"value":360},{"depth":458,"value":394},{"depth":484,"value":436},"\u002Fimages\u002Fhero\u002FCleaning-Up-CSPROJ-1366x768.png",{},"\u002Fcleaning-up-csproj\u002F",true,"posts\u002F2017\u002Fcleaning-up-csproj\u002Findex",[498,499,62,500,69,501,502,503],".NET",".NET Core","MSBuild","SDK","Visual Studio 2017","xproj",7,[506,510,514,519,524,527,530,534,538,542,545,549,554,557,560,564,568,572,575,579,583,587,590,594,599,603,606,609,612,617,621,624,629,633,637,641,644,648,652,656,660,664,668,672,675,679,683,687,691,694,698,702,705,708,712,713,718,722,726,730,734,738,742,745,748,751,755,759,762,766,769,772,775,778,782,786,789,792,796,800,803,806,809,813,817,821,825,828,831,836,839,842,846,849,853,857,860,864,867,870,874,878,882],{"title":507,"permalink":508,"heroImage":509,"timeToRead":484},"Just Start - The First Blog Post","\u002Fjust-start-the-first-blog-post\u002F","\u002Fimages\u002Fhero\u002FJust-Start-1366x768.png",{"title":511,"permalink":512,"heroImage":513,"timeToRead":458},"ConfigureAwait in Task Parallel Library (TPL)","\u002Fconfigureawait-task-parallel-library\u002F","\u002Fimages\u002Fhero\u002FMicrosoft-.NET-1366x768.png",{"title":515,"permalink":516,"heroImage":517,"timeToRead":518},"Stop The Brace Wars, Use StyleCop","\u002Fstop-brace-wars-use-stylecop\u002F","\u002Fimages\u002Fhero\u002FStyleCop-1366x768.png",3,{"title":520,"permalink":521,"heroImage":522,"timeToRead":523},"Reactive Extensions (Rx) - Part 1 - Replacing C# Events","\u002Freactive-extensions-part1-replacing-events\u002F","\u002Fimages\u002Fhero\u002FReactive-Extensions-1366x768.png",4,{"title":525,"permalink":526,"heroImage":522,"timeToRead":518},"Reactive Extensions (Rx) - Part 2 - Wrapping C# Events","\u002Freactive-extensions-part2-wrapping-events\u002F",{"title":528,"permalink":529,"heroImage":522,"timeToRead":458},"Reactive Extensions (Rx) - Part 3 - Naming Conventions","\u002Freactive-extensions-part3-naming-conventions\u002F",{"title":531,"permalink":532,"heroImage":533,"timeToRead":518},"WPF Metro Part 1 - Modern UI for WPF","\u002Fwpf-metro-part1-modern-ui-for-wpf\u002F","\u002Fimages\u002Fhero\u002FModern-UI-for-WPF-1366x768.png",{"title":535,"permalink":536,"heroImage":537,"timeToRead":518},"WPF Metro Part 2 - MahApps Metro","\u002Fwpf-metro-part2-mahapps-metro\u002F","\u002Fimages\u002Fhero\u002FMahApps-Metro-1366x768.png",{"title":539,"permalink":540,"heroImage":541,"timeToRead":518},"Windows 8.1 TouchScreen Gaming Laptops","\u002Fwindows-8-touchscreen-gaming-laptops\u002F","\u002Fimages\u002Fhero\u002FFry-Shutup-And-Take-My-Money-1366x768.png",{"title":543,"permalink":544,"heroImage":522,"timeToRead":518},"Reactive Extensions (Rx) - Part 4 - Replacing Timers","\u002Freactive-extensions-part4-replacing-timers\u002F",{"title":546,"permalink":547,"heroImage":548,"timeToRead":458},"WPF Metro Part 3 - Elysium","\u002Fwpf-metro-part3-elysium\u002F","\u002Fimages\u002Fhero\u002FElysium-1366x768.png",{"title":550,"permalink":551,"heroImage":552,"timeToRead":553},"WPF Metro Part 4 - Elysium Extra","\u002Fwpf-metro-part4-elysium-extra\u002F","\u002Fimages\u002Fhero\u002FElysium-Extra-1366x768.png",8,{"title":555,"permalink":556,"heroImage":522,"timeToRead":523},"Reactive Extensions (Rx) - Part 5 - Awaiting Observables","\u002Freactive-extensions-part5-awaiting-observables\u002F",{"title":558,"permalink":559,"heroImage":513,"timeToRead":553},"GetHashCode Made Easy","\u002Fgethashcode-made-easy\u002F",{"title":561,"permalink":562,"heroImage":522,"timeToRead":563},"Reactive Extensions (Rx) - Part 6 - Task ToObservable","\u002Freactive-extensions-part6-task-toobservable\u002F",5,{"title":565,"permalink":566,"heroImage":567,"timeToRead":484},"Portable Class Library (PCL) version of NotificationsExtensions NuGet package","\u002Fportable-class-library-version-of-notificationsextensions-nuget-package\u002F","\u002Fimages\u002Fhero\u002FNuGet-1366x768.png",{"title":569,"permalink":570,"heroImage":571,"timeToRead":563},"Model-View-ViewModel (MVVM) - Part 1 - Overview","\u002Fmodel-view-viewmodel-mvvm-part1-overview\u002F","\u002Fimages\u002Fhero\u002FMVVM-1366x768.png",{"title":573,"permalink":574,"heroImage":571,"timeToRead":523},"Model-View-ViewModel (MVVM) - Part 2 - IDisposable","\u002Fmodel-view-viewmodel-mvvm-part2-idisposable\u002F",{"title":576,"permalink":577,"heroImage":571,"timeToRead":578},"Model-View-ViewModel (MVVM) - Part 3 - INotifyPropertyChanged","\u002Fmodel-view-viewmodel-mvvm-part3-inotifypropertychanged\u002F",11,{"title":580,"permalink":581,"heroImage":582,"timeToRead":518},"Naming Conventions","\u002Fnaming-conventions\u002F","\u002Fimages\u002Fhero\u002FNaming-Conventions-1366x768.png",{"title":584,"permalink":585,"heroImage":571,"timeToRead":586},"Model-View-ViewModel (MVVM) - Part 4 - INotifyDataErrorInfo","\u002Fmodel-view-viewmodel-mvvm-part4-inotifydataerrorinfo\u002F",12,{"title":588,"permalink":589,"heroImage":552,"timeToRead":523},"Elysium Extra 1.1 Released","\u002Felysium-extra-1-1-released\u002F",{"title":591,"permalink":592,"heroImage":593,"timeToRead":504},"ASP.NET Core Boilerplate","\u002Fasp-net-mvc-boilerplate\u002F","\u002Fimages\u002Fhero\u002FASP.NET-Core-Boilerplate-1366x768.png",{"title":595,"permalink":596,"heroImage":597,"timeToRead":598},"Internet Favicon Madness (Updated)","\u002Finternet-favicon-madness\u002F","\u002Fimages\u002Fhero\u002FFavicons-1366x768.png",17,{"title":600,"permalink":601,"heroImage":602,"timeToRead":504},"Custom Visual Studio Project Templates","\u002Fcustom-visual-studio-project-templates\u002F","\u002Fimages\u002Fhero\u002FVisual-Studio-1366x768.png",{"title":604,"permalink":605,"heroImage":602,"timeToRead":518},"Configuration File Transforms In Visual Studio Should Be Built In","\u002Fconfiguration-file-transforms-in-visual-studio-should-be-built-in\u002F",{"title":607,"permalink":608,"heroImage":593,"timeToRead":578},"Securing the ASP.NET MVC Web.config","\u002Fsecuring-the-aspnet-mvc-web-config\u002F",{"title":610,"permalink":611,"heroImage":522,"timeToRead":458},"Reactive Extensions (Rx) - Part 7 - Sample Events","\u002Freactive-extensions-part7-sample-events\u002F",{"title":613,"permalink":614,"heroImage":615,"timeToRead":616},"NWebSec ASP.NET MVC Security Through HTTP Headers","\u002Fnwebsec-asp-net-mvc-security-through-http-headers\u002F","\u002Fimages\u002Fhero\u002FNWebSec-1366x768.png",6,{"title":618,"permalink":619,"heroImage":620,"timeToRead":104},"Content Security Policy (CSP) for ASP.NET MVC","\u002Fcontent-security-policy-for-asp-net-mvc\u002F","\u002Fimages\u002Fhero\u002FContent-Security-Policy-CSP-for-ASP.NET-MVC-1366x768.png",{"title":622,"permalink":623,"heroImage":513,"timeToRead":563},"C# 6.0 - Saving Developers From Themselves","\u002Fc-6-0-saving-developers-from-themselves\u002F",{"title":625,"permalink":626,"heroImage":627,"timeToRead":628},"Building RSS\u002FAtom Feeds for ASP.NET MVC","\u002Fbuilding-rssatom-feeds-for-asp-net-mvc\u002F","\u002Fimages\u002Fhero\u002FRSS-And-Atom-1366x768.png",19,{"title":630,"permalink":631,"heroImage":632,"timeToRead":578},"Canonical URL's for ASP.NET MVC","\u002Fcanonical-urls-for-asp-net-mvc\u002F","\u002Fimages\u002Fhero\u002FLink-Juice-1366x768.png",{"title":634,"permalink":635,"heroImage":636,"timeToRead":523},"Dynamically Generating Robots.txt Using ASP.NET MVC","\u002Fdynamically-generating-robots-txt-using-asp-net-mvc\u002F","\u002Fimages\u002Fhero\u002FRobots.txt-1366x768.jpg",{"title":638,"permalink":639,"heroImage":640,"timeToRead":523},"Minifying HTML for ASP.NET MVC","\u002Fminifying-html-for-asp-net-mvc\u002F","\u002Fimages\u002Fhero\u002FThe-Internet-Is-A-Series-Of-Tubes-1366x768.jpg",{"title":642,"permalink":643,"heroImage":593,"timeToRead":458},"Whats New in ASP.NET Core Boilerplate","\u002Fwhats-new-in-asp-net-5-mvc-6-boilerplate\u002F",{"title":645,"permalink":646,"heroImage":647,"timeToRead":504},"Dynamically Generating Sitemap.xml for ASP.NET MVC","\u002Fdynamically-generating-sitemap-xml-for-asp-net-mvc\u002F","\u002Fimages\u002Fhero\u002FSitemaps-1366x768.png",{"title":649,"permalink":650,"heroImage":651,"timeToRead":458},"So I've Been Awarded Microsoft MVP Status!","\u002Fso-ive-been-awarded-microsoft-mvp-status\u002F","\u002Fimages\u002Fhero\u002FMicrosoft-MVP-1366x768.png",{"title":653,"permalink":654,"heroImage":655,"timeToRead":484},".NET Big-O Algorithm Complexity Cheat Sheet","\u002Fnet-big-o-algorithm-complexity-cheat-sheet\u002F","\u002Fimages\u002Fhero\u002FNET-Big-O-Algorithm-Complexity-Cheat-Sheet-1366x768.jpg",{"title":657,"permalink":658,"heroImage":659,"timeToRead":518},"Logging with Serilog.Exceptions","\u002Flogging-with-serilog-exceptions\u002F","\u002Fimages\u002Fhero\u002FSerilog.Exceptions-1366x768.png",{"title":661,"permalink":662,"heroImage":663,"timeToRead":484},"Make Certificate","\u002Fmake-certificate\u002F","\u002Fimages\u002Fhero\u002FMake-Certificate-1366x768.png",{"title":665,"permalink":666,"heroImage":667,"timeToRead":458},"Colorful.Console","\u002Fcolorful-console\u002F","\u002Fimages\u002Fhero\u002FColorful.Console-1366x768.png",{"title":669,"permalink":670,"heroImage":671,"timeToRead":518},"Subresource Integrity TagHelper Using ASP.NET Core - Part 1","\u002Fsubresource-integrity-taghelper-using-asp-net-core\u002F","\u002Fimages\u002Fhero\u002FMake-Security-Easy-1366x768.png",{"title":673,"permalink":674,"heroImage":671,"timeToRead":523},"Subresource Integrity TagHelper Using ASP.NET Core - Part 2","\u002Fsubresource-integrity-taghelper-using-asp-net-core-part-2\u002F",{"title":676,"permalink":677,"heroImage":678,"timeToRead":563},"Social TagHelpers for ASP.NET Core","\u002Fsocial-taghelpers-for-asp-net-core\u002F","\u002Fimages\u002Fhero\u002FSocial-Media-1366x768.png",{"title":680,"permalink":681,"heroImage":682,"timeToRead":616},"Azure Active Directory Versus Identity Server","\u002Fazure-active-directory-versus-identity-server\u002F","\u002Fimages\u002Fhero\u002FAzure-Active-Directory-Versus-Identity-Server-1366x768.png",{"title":684,"permalink":685,"heroImage":686,"timeToRead":458},"ASP.NET Core Fluent Interface Extensions","\u002Fasp-net-core-fluent-interface-extensions\u002F","\u002Fimages\u002Fhero\u002FFluent-Interface-All-The-Things-1366x768.png",{"title":688,"permalink":689,"heroImage":690,"timeToRead":578},"NGINX for ASP.NET Core In-Depth","\u002Fnginx-asp-net-core-depth\u002F","\u002Fimages\u002Fhero\u002FNGINX-1366x768.png",{"title":692,"permalink":693,"heroImage":513,"timeToRead":458},"The Dotnet Watch Tool","\u002Fthe-dotnet-watch-tool\u002F",{"title":695,"permalink":696,"heroImage":697,"timeToRead":523},"Making Application Insights Fast & Secure","\u002Fmaking-application-insights-fast-and-secure\u002F","\u002Fimages\u002Fhero\u002FApplication-Insights-1366x768.png",{"title":699,"permalink":700,"heroImage":701,"timeToRead":504},"SEO Friendly URL's for ASP.NET Core","\u002Fseo-friendly-urls-asp-net-core\u002F","\u002Fimages\u002Fhero\u002FSearch-Engine-Optimization-SEO-1366x768.png",{"title":703,"permalink":704,"heroImage":522,"timeToRead":484},"Reactive Extensions (Rx) - Part 8 - Timeouts","\u002Freactive-extensions-rx-part-8-timeouts\u002F",{"title":706,"permalink":707,"heroImage":513,"timeToRead":523},"Custom Project Templates Using dotnet new","\u002Fcustom-project-templates-using-dotnet-new\u002F",{"title":709,"permalink":710,"heroImage":711,"timeToRead":553},"Cross-Platform DevOps for .NET Core","\u002Fcross-platform-devops-net-core\u002F","\u002Fimages\u002Fhero\u002FDotnet-Cake-AppVeyor-Travis-1366x768.png",{"title":39,"permalink":494,"heroImage":492,"timeToRead":504},{"title":714,"permalink":715,"heroImage":716,"timeToRead":717},"dotnet new Feature Selection","\u002Fdotnet-new-feature-selection\u002F","\u002Fimages\u002Fhero\u002FWho-Wants-To-Be-A-Millionaire-1366x768.png",9,{"title":719,"permalink":720,"heroImage":721,"timeToRead":523},"ASP.NET Core Lazy Command Pattern","\u002Fasp-net-core-lazy-command-pattern\u002F","\u002Fimages\u002Fhero\u002FASP.NET-Core-Lazy-Command-Pattern-1366x768.png",{"title":723,"permalink":724,"heroImage":725,"timeToRead":458},"Structured Data using Schema.NET","\u002Fstructured-data-using-schema-net\u002F","\u002Fimages\u002Fhero\u002FSchema.NET-1366x768.png",{"title":727,"permalink":728,"heroImage":729,"timeToRead":616},"Keeping Up With Software Development","\u002Fkeeping-software-development\u002F","\u002Fimages\u002Fhero\u002FKeeping-up-with-Software-Development-1366x768.png",{"title":731,"permalink":732,"heroImage":733,"timeToRead":458},"A Very Generic .editorconfig File (Updated)","\u002Fgeneric-editorconfig-file\u002F","\u002Fimages\u002Fhero\u002FA-Very-Generic-Editorconfig-File-1366x768.png",{"title":735,"permalink":736,"heroImage":737,"timeToRead":563},"ASP.NET Core Caching in Practice","\u002Fasp-net-core-caching-in-practice\u002F","\u002Fimages\u002Fhero\u002FASP.NET-Core-Caching-in-Practice-1366x768.png",{"title":739,"permalink":740,"heroImage":741,"timeToRead":484},"Docker Read-Only File Systems","\u002Fdocker-read-file-systems\u002F","\u002Fimages\u002Fhero\u002FDocker-1366x768.png",{"title":743,"permalink":744,"heroImage":741,"timeToRead":518},"Docker Labels in Depth","\u002Fdocker-labels-depth\u002F",{"title":746,"permalink":747,"heroImage":741,"timeToRead":523},"Useful Docker Images - Part 1","\u002Fuseful-docker-images-part1\u002F",{"title":749,"permalink":750,"heroImage":741,"timeToRead":563},"Useful Docker Images - Part 2","\u002Fuseful-docker-images-part2\u002F",{"title":752,"permalink":753,"heroImage":754,"timeToRead":523},"Writing your Webpack configuration in TypeScript","\u002Fwriting-your-webpack-configuration-in-typescript\u002F","\u002Fimages\u002Fhero\u002FTypeScript-1366x768.png",{"title":756,"permalink":757,"heroImage":758,"timeToRead":563},"Writing Code while Asleep","\u002Fwriting-code-asleep\u002F","\u002Fimages\u002Fhero\u002FWhile-Alive-Eat-Sleep-Code-Repeat-1366x768.png",{"title":760,"permalink":761,"heroImage":513,"timeToRead":458},"The Dotnet Watch Tool Revisited","\u002Fthe-dotnet-watch-tool-revisited\u002F",{"title":763,"permalink":764,"heroImage":765,"timeToRead":458},".NET Boxed","\u002Fnet-boxed\u002F","\u002Fimages\u002Fhero\u002FDotnet-Boxed-1366x768.png",{"title":767,"permalink":768,"heroImage":513,"timeToRead":458},"Migrating to Entity Framework Core Seed Data","\u002Fmigrating-to-entity-framework-core-seed-data\u002F",{"title":770,"permalink":771,"heroImage":513,"timeToRead":518},"Optimally Configuring Entity Framework Core","\u002Foptimally-configuring-entity-framework-core\u002F",{"title":773,"permalink":774,"heroImage":513,"timeToRead":484},"ASP.NET Core Hidden Gem - QueryHelpers","\u002Fasp-net-core-hidden-gem-queryhelpers\u002F",{"title":776,"permalink":777,"heroImage":513,"timeToRead":717},"Optimally Configuring ASP.NET Core HttpClientFactory","\u002Foptimally-configuring-asp-net-core-httpclientfactory\u002F",{"title":779,"permalink":780,"heroImage":781,"timeToRead":504},"PluralSight vs LinkedIn Learning vs FrontendMasters vs Egghead.io vs YouTube","\u002Fpluralsight-vs-linkedin-learning-vs-frontendmasters-vs-egghead-io-vs-youtube\u002F","\u002Fimages\u002Fhero\u002FOnline-Learning-1366x768.png",{"title":783,"permalink":784,"heroImage":785,"timeToRead":717},"Is ASP.NET Core now a Mature Platform?","\u002Fis-asp-net-core-now-a-mature-platform\u002F","\u002Fimages\u002Fhero\u002FRocket-1366x768.jpg",{"title":787,"permalink":788,"heroImage":765,"timeToRead":717},"A Simple and Fast Object Mapper","\u002Fa-simple-and-fast-object-mapper\u002F",{"title":790,"permalink":791,"heroImage":741,"timeToRead":484},"Securing ASP.NET Core in Docker","\u002Fsecuring-asp-net-core-in-docker\u002F",{"title":793,"permalink":794,"heroImage":795,"timeToRead":523},"Git Cloning the Windows OS Repo","\u002Fgit-cloning-the-windows-os-repo\u002F","\u002Fimages\u002Fhero\u002FWindows-1366x768.png",{"title":797,"permalink":798,"heroImage":799,"timeToRead":504},".gitattributes Best Practices","\u002Fgitattributes-best-practices\u002F","\u002Fimages\u002Fhero\u002FGit-1366x768.png",{"title":801,"permalink":802,"heroImage":513,"timeToRead":518},"Unit Testing dotnet new Templates","\u002Funit-testing-dotnet-new-templates\u002F",{"title":804,"permalink":805,"heroImage":765,"timeToRead":563},"What dotnet new Could Be","\u002Fwhat-dotnet-new-could-be\u002F",{"title":807,"permalink":808,"heroImage":513,"timeToRead":523},"ASP.NET Core Integration Testing & Mocking using Moq","\u002Fasp-net-core-integration-testing-mocking-using-moq\u002F",{"title":810,"permalink":811,"heroImage":812,"timeToRead":504},"Choosing a Static Site Generator","\u002Fchoosing-a-static-site-generator\u002F","\u002Fimages\u002Fhero\u002FStatic-Site-Generators-1600x900.png",{"title":814,"permalink":815,"heroImage":816,"timeToRead":458},"Spicing up your Browser Console","\u002Fspicing-up-your-browser-console\u002F","\u002Fimages\u002Fhero\u002FFiglet-Fonts-1600x900.png",{"title":818,"permalink":819,"heroImage":820,"timeToRead":563},"Racism in Software Development & Beyond","\u002Fracism-in-software-development-and-beyond\u002F","\u002Fimages\u002Fhero\u002FBlack-Glowing-Fist-1600x900.png",{"title":822,"permalink":823,"heroImage":824,"timeToRead":563},"The Easiest Way to Version NuGet Packages","\u002Fthe-easiest-way-to-version-nuget-packages\u002F","\u002Fimages\u002Fhero\u002FSemantic-Versioning-1600x900.png",{"title":826,"permalink":827,"heroImage":567,"timeToRead":616},"The Fastest NuGet Package Ever Published (Probably)","\u002Fthe-fastest-nuget-package-ever-published-probably\u002F",{"title":829,"permalink":830,"heroImage":513,"timeToRead":518},"Automating .NET Security Updates","\u002Fautomating-dotnet-security-updates\u002F",{"title":832,"permalink":833,"heroImage":834,"timeToRead":835},"Deep Dive into Open Telemetry for .NET","\u002Fdeep-dive-into-open-telemetry-for-net\u002F","\u002Fimages\u002Fhero\u002FOpen-Telemetry-1600x900.png",10,{"title":837,"permalink":838,"heroImage":834,"timeToRead":518},"Open Telemetry for ASP.NET Core","\u002Fopen-telemetry-for-asp-net-core\u002F",{"title":840,"permalink":841,"heroImage":834,"timeToRead":518},"Exporting Open Telemetry Data to Jaeger","\u002Fexporting-open-telemetry-data-to-jaeger\u002F",{"title":843,"permalink":844,"heroImage":845,"timeToRead":518},"A System for Grouping & Sorting CSS Properties","\u002Fsystem-for-grouping-and-sorting-css-properties\u002F","\u002Fimages\u002Fhero\u002FCSS-1600x900.png",{"title":847,"permalink":848,"heroImage":845,"timeToRead":616},"CSS General Rules of Thumb","\u002Fcss-general-rules-of-thumb\u002F",{"title":850,"permalink":851,"heroImage":852,"timeToRead":523},"Web Component Custom Element Gotchas","\u002Fweb-component-custom-element-gotchas\u002F","\u002Fimages\u002Fhero\u002FWeb-Components-1600x900.png",{"title":854,"permalink":855,"heroImage":856,"timeToRead":458},"Code Coverage & Frontend Testing","\u002Fcode-coverage-and-frontend-testing\u002F","\u002Fimages\u002Fhero\u002FJest-Cypress-1600x900.png",{"title":858,"permalink":859,"heroImage":602,"timeToRead":484},".NET Boxed Visual Studio Integration","\u002Fdotnet-boxed-visual-studio-integration\u002F",{"title":861,"permalink":862,"heroImage":863,"timeToRead":518},"The Windows Package Manager","\u002Fwindows-package-manager\u002F","\u002Fimages\u002Fhero\u002FWinget-1600x900.png",{"title":865,"permalink":866,"heroImage":513,"timeToRead":518},"The Problem with C# 10 Implicit Usings","\u002Fthe-problem-with-csharp-10-implicit-usings\u002F",{"title":868,"permalink":869,"heroImage":834,"timeToRead":523},"Optimally Configuring Open Telemetry Tracing for ASP.NET Core","\u002Foptimally-configuring-open-telemetry-tracing-for-asp-net-core\u002F",{"title":871,"permalink":872,"heroImage":873,"timeToRead":458},"Live Streaming .NET","\u002Flive-streaming-dotnet\u002F","\u002Fimages\u002Fhero\u002FMy-YouTube-1920x1080.jpg",{"title":875,"permalink":876,"heroImage":877,"timeToRead":458},"I Was Awarded as an Open UK Honouree","\u002Fopen-uk-honouree\u002F","\u002Fimages\u002Fhero\u002FOpen-UK-Honours-1366x768.jpg",{"title":879,"permalink":880,"heroImage":881,"timeToRead":523},"On the Etiquette of Pull Request Comments","\u002Fon-the-etiquette-of-pull-request-comments\u002F","\u002Fimages\u002Fhero\u002FPrecious-PR-1600x900.jpg",{"title":883,"permalink":884,"heroImage":885,"timeToRead":484},"AI Gone Rogue","\u002Fai-gone-rogue\u002F","\u002Fimages\u002Fhero\u002FHAL-9000-Prop-1600x900.png",{"left":4,"top":4,"width":24,"height":16,"rotate":4,"vFlip":6,"hFlip":6,"body":887},"\u003Cpath fill=\"currentColor\" d=\"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.55 96.55 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.3 96.3 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96s-42.981-96-96-96\"\u002F>",{"left":4,"top":4,"width":16,"height":16,"rotate":4,"vFlip":6,"hFlip":6,"body":889},"\u003Cpath fill=\"currentColor\" d=\"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48c27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256\"\u002F>",{"left":4,"top":4,"width":16,"height":16,"rotate":4,"vFlip":6,"hFlip":6,"body":891},"\u003Cpath fill=\"currentColor\" d=\"M459.37 151.716c.325 4.548.325 9.097.325 13.645c0 138.72-105.583 298.558-298.558 298.558c-59.452 0-114.68-17.219-161.137-47.106c8.447.974 16.568 1.299 25.34 1.299c49.055 0 94.213-16.568 130.274-44.832c-46.132-.975-84.792-31.188-98.112-72.772c6.498.974 12.995 1.624 19.818 1.624c9.421 0 18.843-1.3 27.614-3.573c-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319c-28.264-18.843-46.781-51.005-46.781-87.391c0-19.492 5.197-37.36 14.294-52.954c51.655 63.675 129.3 105.258 216.365 109.807c-1.624-7.797-2.599-15.918-2.599-24.04c0-57.828 46.782-104.934 104.934-104.934c30.213 0 57.502 12.67 76.67 33.137c23.715-4.548 46.456-13.32 66.599-25.34c-7.798 24.366-24.366 44.833-46.132 57.827c21.117-2.273 41.584-8.122 60.426-16.243c-14.292 20.791-32.161 39.308-52.628 54.253\"\u002F>",{"left":4,"top":4,"width":16,"height":16,"rotate":4,"vFlip":6,"hFlip":6,"body":893},"\u003Cpath fill=\"currentColor\" d=\"M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6c0-13.8 11.1-24.9 24.9-24.9c13.6 0 24.6 11.1 24.6 24.9c0 13.6-11.1 24.6-24.6 24.6M504 256c0 137-111 248-248 248S8 393 8 256S119 8 256 8s248 111 248 248m-132.3-41.2c-9.4 0-17.7 3.9-23.8 10c-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3l55.4 12.5c0 13.6 11.1 24.6 24.6 24.6c13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8c-6.1-6.4-14.7-10.2-24.1-10.2c-34.9 0-46.3 46.9-14.4 62.8c-1.1 5-1.7 10.2-1.7 15.5c0 52.6 59.2 95.2 132 95.2c73.1 0 132.3-42.6 132.3-95.2c0-5.3-.6-10.8-1.9-15.8c31.3-16 19.8-62.5-14.9-62.5M302.8 331c-18.2 18.2-76.1 17.9-93.6 0c-2.2-2.2-6.1-2.2-8.3 0c-2.5 2.5-2.5 6.4 0 8.6c22.8 22.8 87.3 22.8 110.2 0c2.5-2.2 2.5-6.1 0-8.6c-2.2-2.2-6.1-2.2-8.3 0m7.7-75c-13.6 0-24.6 11.1-24.6 24.9c0 13.6 11.1 24.6 24.6 24.6c13.8 0 24.9-11.1 24.9-24.6c0-13.8-11-24.9-24.9-24.9\"\u002F>",{"left":4,"top":4,"width":16,"height":16,"rotate":4,"vFlip":6,"hFlip":6,"body":895},"\u003Cpath fill=\"currentColor\" d=\"M512 194.8c0 101.3-82.4 183.8-183.8 183.8c-101.7 0-184.4-82.4-184.4-183.8c0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8M0 501.5h90v-491H0z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":897},"\u003Cpath fill=\"currentColor\" d=\"m20.216 6.415l-.132-.666c-.119-.598-.388-1.163-1.001-1.379c-.197-.069-.42-.098-.57-.241c-.152-.143-.196-.366-.231-.572c-.065-.378-.125-.756-.192-1.133c-.057-.325-.102-.69-.25-.987c-.195-.4-.597-.634-.996-.788a6 6 0 0 0-.626-.194c-1-.263-2.05-.36-3.077-.416a26 26 0 0 0-3.7.062c-.915.083-1.88.184-2.75.5c-.318.116-.646.256-.888.501c-.297.302-.393.77-.177 1.146c.154.267.415.456.692.58c.36.162.737.284 1.123.366c1.075.238 2.189.331 3.287.37q1.829.074 3.65-.118q.449-.05.896-.119c.352-.054.578-.513.474-.834c-.124-.383-.457-.531-.834-.473c-.466.074-.96.108-1.382.146q-1.767.12-3.536.006a22 22 0 0 1-1.157-.107c-.086-.01-.18-.025-.258-.036q-.364-.055-.724-.13c-.111-.027-.111-.185 0-.212h.005q.416-.09.838-.147h.002c.131-.009.263-.032.394-.048a25 25 0 0 1 3.426-.12q1.011.029 2.017.144l.228.031q.4.06.798.145c.392.085.895.113 1.07.542c.055.137.08.288.111.431l.319 1.484a.237.237 0 0 1-.199.284h-.003l-.112.015a37 37 0 0 1-4.743.295a37 37 0 0 1-4.699-.304c-.14-.017-.293-.042-.417-.06c-.326-.048-.649-.108-.973-.161c-.393-.065-.768-.032-1.123.161c-.29.16-.527.404-.675.701c-.154.316-.199.66-.267 1c-.069.34-.176.707-.135 1.056c.087.753.613 1.365 1.37 1.502a39.7 39.7 0 0 0 11.343.376a.483.483 0 0 1 .535.53l-.071.697l-1.018 9.907c-.041.41-.047.832-.125 1.237c-.122.637-.553 1.028-1.182 1.171q-.868.197-1.756.205c-.656.004-1.31-.025-1.966-.022c-.699.004-1.556-.06-2.095-.58c-.475-.458-.54-1.174-.605-1.793l-.731-7.013l-.322-3.094c-.037-.351-.286-.695-.678-.678c-.336.015-.718.3-.678.679l.228 2.185l.949 9.112c.147 1.344 1.174 2.068 2.446 2.272c.742.12 1.503.144 2.257.156c.966.016 1.942.053 2.892-.122c1.408-.258 2.465-1.198 2.616-2.657l1.024-9.995l.215-2.087a.48.48 0 0 1 .39-.426c.402-.078.787-.212 1.074-.518c.455-.488.546-1.124.385-1.766zm-1.478.772c-.145.137-.363.201-.578.233c-2.416.359-4.866.54-7.308.46c-1.748-.06-3.477-.254-5.207-.498c-.17-.024-.353-.055-.47-.18c-.22-.236-.111-.71-.054-.995c.052-.26.152-.609.463-.646c.484-.057 1.046.148 1.526.22q.865.132 1.737.212c2.48.226 5.002.19 7.472-.14q.675-.09 1.345-.21c.399-.072.84-.206 1.08.206c.166.281.188.657.162.974a.54.54 0 0 1-.169.364zm-6.159 3.9c-.862.37-1.84.788-3.109.788a6 6 0 0 1-1.569-.217l.877 9.004c.065.78.717 1.38 1.5 1.38c0 0 1.243.065 1.658.065c.447 0 1.786-.065 1.786-.065c.783 0 1.434-.6 1.499-1.38l.94-9.95a4 4 0 0 0-1.322-.238c-.826 0-1.491.284-2.26.613\"\u002F>",{"left":4,"top":4,"width":27,"height":16,"rotate":4,"vFlip":6,"hFlip":6,"body":899},"\u003Cpath fill=\"currentColor\" d=\"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134c-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9c152.3 0 165.1-3.7 204 11.4c60.1 23.3 65.6 79.5 44 140.3c-21.5 62.6-72.5 89.5-140.1 90.3c-43.4.7-69.5-7-75.3 24.2M357.1 152c-1.8-1.3-2.5-1.8-3 1.3c-2 11.4-5.1 22.5-8.8 33.6c-39.9 113.8-150.5 103.9-204.5 103.9c-6.1 0-10.1 3.3-10.9 9.4c-22.6 140.4-27.1 169.7-27.1 169.7c-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9c.7-5.4-1.1 6.1 14.4-91.3c4.6-22 14.3-19.7 29.3-19.7c71 0 126.4-28.8 142.9-112.3c6.5-34.8 4.6-71.4-23.8-92.6\"\u002F>",{"left":4,"top":4,"width":16,"height":16,"rotate":4,"vFlip":6,"hFlip":6,"body":901},"\u003Cpath fill=\"currentColor\" d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8m0 448c-110.532 0-200-89.431-200-200c0-110.495 89.472-200 200-200c110.491 0 200 89.471 200 200c0 110.53-89.431 200-200 200m107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516c17.561-9.845 28.324-16.541 28.324-29.579c0-17.246-21.999-28.693-39.784-28.693c-23.189 0-33.894 10.977-48.942 29.969c-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8M298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42s18.841-42 42-42s42 18.841 42 42\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":903},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 12H5m7 7l-7-7l7-7\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":905},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",1793785994729]