{"id":2752,"date":"2025-05-23T07:22:02","date_gmt":"2025-05-23T07:22:02","guid":{"rendered":"https:\/\/techtrendfeed.com\/?p=2752"},"modified":"2025-05-23T07:22:03","modified_gmt":"2025-05-23T07:22:03","slug":"upgrading-a-20-yr-previous-college-venture-to-net-6-with-dotnet-upgrade-assistant","status":"publish","type":"post","link":"https:\/\/techtrendfeed.com\/?p=2752","title":{"rendered":"Upgrading a 20 yr previous College Venture to .NET 6 with dotnet-upgrade-assistant"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div id=\"\">&#13;<br \/>\n            &#13;<\/p>\n<p>I wrote a <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.hanselman.com\/blog\/rescuing-the-tiny-os-in-c\">Tiny Digital Working System<\/a> for a 300-level OS class in C# for faculty again in 2001 (?) and later <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.hanselman.com\/blog\/ive-ported-my-tiny-abstract-os-and-cpu-in-c-projectnbspfr\">moved it to VB.NET in 2002<\/a>. That is all pre-.NET Core, and on early .NET 1.1 or 2.0 on Home windows. I <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/shanselman\/TinyOS\">moved it to GitHub 5 years in the past<\/a> and <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.hanselman.com\/blog\/porting-a-15-year-old-net-11-virtual-cpu-tiny-operating-system-school-project-to-net-core-20\">ported it to .NET Core 2.0 on the time<\/a>. At this level it was 15 years previous, so it was cool to see this undertaking operating on Home windows, Linux, in Docker, and on a Raspberry Pi&#8230;a machine that did not exist when the undertaking was initially written.<\/p>\n<blockquote>\n<p><strong>NOTE: <\/strong>If the timeline is complicated, I had already been working in business for years at this level however was nonetheless plugging away at my 4 yr diploma at evening. It will definitely took 11 years to finish my BS in Software program Engineering.<\/p>\n<\/blockquote>\n<p>This night, as the kids slept, I needed to see if I may run the <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/dotnet.microsoft.com\/platform\/upgrade-assistant\">.NET Improve Assistant<\/a> on this now 20 yr previous app and get it operating on .NET 6. <\/p>\n<p>Let&#8217;s begin:<\/p>\n<pre>$ upgrade-assistant improve .TinyOS.sln<br\/>-----------------------------------------------------------------------------------------------------------------<br\/>Microsoft .NET Improve Assistant v0.3.256001+3c4e05c787f588e940fe73bfa78d7eedfe0190bd<p>We're eager about your suggestions! Please use the next hyperlink to open a survey: https:\/\/aka.ms\/DotNetUASurvey<br\/>-----------------------------------------------------------------------------------------------------------------<\/p><p>[22:58:01 INF] Loaded 5 extensions<br\/>[22:58:02 INF] Utilizing MSBuild from C:Program Filesdotnetsdk6.0.100<br\/>[22:58:02 INF] Utilizing Visible Studio set up from C:Program FilesMicrosoft Visible Studio2022Preview [v17]<br\/>[22:58:06 INF] Initializing improve step Choose an entrypoint<br\/>[22:58:07 INF] Setting entrypoint to solely undertaking in resolution: C:UsersscottTinyOSsrcTinyOSCoreTinyOSCore.csproj<br\/>[22:58:07 INF] Recommending executable TFM net6.0 as a result of the undertaking builds to an executable<br\/>[22:58:07 INF] Initializing improve step Choose undertaking to improve<br\/>[22:58:07 INF] Recommending executable TFM net6.0 as a result of the undertaking builds to an executable<br\/>[22:58:07 INF] Recommending executable TFM net6.0 as a result of the undertaking builds to an executable<br\/>[22:58:07 INF] Initializing improve step Again up undertaking<\/p><\/pre>\n<p>See how the method is interactive on the command line, with coloration prompts and a collection of dynamic multiple-choice questions?<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" title=\"Updating .NET project with the upgrade assistant\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"Updating .NET project with the upgrade assistant\" src=\"https:\/\/images.hanselman.com\/blog\/Windows-Live-Writer\/16297583fa52_12B8A\/image_102c9b35-682a-46ed-9bb3-3d313ddda313.png\" width=\"939\" height=\"352\"\/><\/figure>\n<p>Curiously, it builds on the primary strive, no errors.<\/p>\n<p>After I manually have a look at the .csproj I can see some bizarre model numbers, seemingly from some not-quite-baked model of .NET Core 2 I used a few years in the past. My spidey sense says that is incorrect, and I am assuming the improve assistant did not perceive it. <\/p>\n<pre class=\"brush: xml; gutter: false; toolbar: false; auto-links: false; smart-tabs: false;\">    <packagereference include=\"Microsoft.Extensions.Configuration\" version=\"2.0.0-preview2-final\"\/><packagereference include=\"Microsoft.Extensions.Configuration.Json\" version=\"2.0.0-preview2-final\"\/><packagereference include=\"Microsoft.Extensions.DependencyInjection\" version=\"2.0.0-preview2-final\"\/><packagereference include=\"Microsoft.Extensions.Options.ConfigurationExtensions\" version=\"2.0.0-preview2-final\"\/>\n<\/pre>\n<p>I additionally observe a commented-out reference to ILLink.Duties which was a preview characteristic in Mono&#8217;s Linker to scale back the ultimate dimension of apps and tree-trim them. A few of that performance is constructed into .NET 6 now so I am going to use that throughout the construct and packaging course of later. The reference isn&#8217;t wanted as we speak.<\/p>\n<p>I am gonna blindly improve them to .NET 6 and see what occurs. I may do that by simply altering the numbers and seeing if it restores and builds, however I may also strive <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.hanselman.com\/blog\/your-dotnet-outdated-is-outdated-update-and-help-keep-your-net-projects-up-to-date\">dotnet outdated<\/a> which stays a stunning software within the upgrader&#8217;s toolkit.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"https:\/\/images.hanselman.com\/blog\/Windows-Live-Writer\/16297583fa52_12B8A\/image_4a71ee64-6bb1-4730-86f8-689475662465.png\" width=\"999\" height=\"156\"\/><\/figure>\n<p>This &#8220;outdated&#8221; software is good because it talks to NuGet and confirms that there are newer variations of sure packages.<\/p>\n<p>In my checks &#8211; which had been simply batch recordsdata at this early time &#8211; I used to be calling my dotnet app like this:<\/p>\n<pre>dotnet netcoreapp2.0\/TinyOSCore.dll 512 scott13.txt  <\/pre>\n<p>This may change to the fashionable kind with simply <code>TinyOSCore.exe 512 scott13.txt<\/code> with an exe and args and no ceremony.<\/p>\n<p>Publishing and trimming my TinyOS turns into only a 15 meg EXE. Good contemplating that the .NET I want is in there with no separate set up. I may flip this little artificial OS right into a microservice if I needed to be completely additional.<\/p>\n<pre>dotnet publish -r win-x64 --self-contained -p:PublishSingleFile=true -p:SuppressTrimAnalysisWarnings=true<\/pre>\n<p>If I add <\/p>\n<pre>-p:EnableCompressionInSingleFile=true<\/pre>\n<p>Then it is even smaller. No code adjustments. Run all my checks, seems good. My undertaking from college from .NET 1.1 is now .NET 6.0, cross platform, self-contained in 11 megs in a single EXE. Candy.<\/p>\n<hr\/>\n<p><strong>Sponsor: <\/strong>At Rocket Mortgage\u00ae the work you do round right here can be 100% impactful however gained\u2019t take all of your free time, supplying you with the proper work-life stability. Or as we name it, tech\/life stability! <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/hnsl.mn\/3qVUu5O\">Study extra.<\/a><\/p>\n<p>&#13;<br \/>\n&#13;<br \/>\n&#13;<br \/>\n&#13;<\/p>\n<div class=\"about-scott\">\n<div class=\"bioBox\">\n<h4>About Scott<\/h4>\n<div class=\"bioBoxInner\">\n<p>Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, advisor, father, diabetic, and Microsoft worker. He&#8217;s a failed stand-up comedian, a cornrower, and a ebook writer.<\/p>\n<p>                        <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/facebook.com\/shanselman\" class=\"sm-link\"><img decoding=\"async\" src=\"http:\/\/images.hanselman.com\/main\/icon-fb.png\" alt=\"facebook\"\/><\/a><br \/>\n                        <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/bsky.app\/profile\/scott.hanselman.com\" class=\"sm-link\"><img decoding=\"async\" src=\"http:\/\/images.hanselman.com\/main\/icon-bluesky.png\" alt=\"bluesky\"\/><\/a><br \/>\n                        <a rel=\"nofollow\" target=\"_blank\" href=\"http:\/\/feeds.hanselman.com\/ScottHanselman\" class=\"sm-link\"><img decoding=\"async\" src=\"http:\/\/images.hanselman.com\/main\/icon-rss.png\" alt=\"subscribe\"\/><\/a><br \/>\n                        <a rel=\"nofollow\" target=\"_blank\" href=\"http:\/\/hanselman.com\/about\">About<\/a> \u00a0 <a rel=\"nofollow\" target=\"_blank\" href=\"http:\/\/www.hanselman.com\/newsletter\">Publication<\/a>\n                    <\/div><\/div>\n<div class=\"ads-box\">\n<div class=\"ad-item\">\n                        <strong>Internet hosting By<\/strong><br \/>\n                        <a rel=\"nofollow\" target=\"_blank\" rel=\"nofollow\" href=\"https:\/\/azure.microsoft.com\/free\"><img loading=\"lazy\" decoding=\"async\" alt=\"Hosted on Linux using .NET in an Azure App Service\" class=\"ad\" border=\"0\" valign=\"top\" vspace=\"4\" width=\"125\" height=\"125\" src=\"http:\/\/images.hanselman.com\/main\/azure-250x250.png\"\/><\/a>\n                    <\/div><\/div><\/div>\n<p>&#13;<br \/>\n&#13;<br \/>\n            &#13;<br \/>\n&#13;<br \/>\n&#13;<br \/>\n            &#13;<br \/>\n&#13;<br \/>\n            &#13;\n        <\/p><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>&#13; &#13; I wrote a Tiny Digital Working System for a 300-level OS class in C# for faculty again in 2001 (?) and later moved it to VB.NET in 2002. That is all pre-.NET Core, and on early .NET 1.1 or 2.0 on Home windows. I moved it to GitHub 5 years in the past [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":2754,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[56],"tags":[837,2662,1640,1840,2661,97],"class_list":["post-2752","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","tag-net","tag-dotnetupgradeassistant","tag-project","tag-university","tag-upgrading","tag-year"],"_links":{"self":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/2752","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2752"}],"version-history":[{"count":1,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/2752\/revisions"}],"predecessor-version":[{"id":2753,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/2752\/revisions\/2753"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/media\/2754"}],"wp:attachment":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2752"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2752"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}<!-- This website is optimized by Airlift. Learn more: https://airlift.net. Template:. Learn more: https://airlift.net. Template: 69d9690a190636c2e0989534. Config Timestamp: 2026-04-10 21:18:02 UTC, Cached Timestamp: 2026-06-10 18:44:34 UTC -->