{"id":35974,"date":"2025-11-12T17:00:21","date_gmt":"2025-11-12T17:00:21","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=35974"},"modified":"2025-11-12T17:03:33","modified_gmt":"2025-11-12T17:03:33","slug":"app-modernization-cpp-private-preview","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/app-modernization-cpp-private-preview\/","title":{"rendered":"Fix build issues using GitHub Copilot after upgrading MSVC Build Tools"},"content":{"rendered":"<p><div  class=\"d-flex justify-content-center\"><a class=\"cta_button_link btn-primary mb-24\" href=\"https:\/\/www.surveymonkey.com\/r\/C2S6NV3\" target=\"_blank\">Sign up for the Private Preview waitlist<\/a><\/div><\/p>\n<p>A few problems have reared their heads at every company where I\u2019ve worked on C++ as a Software Engineer over the past 20 years. For the most part, those problems have nothing to do with the language and how it is used, but instead all the \u201cother\u201d stuff, like dealing with long build times, getting consistent build environments, and managing the technical debt of an evolving tooling landscape.<\/p>\n<p>When the tools we use to build our applications and systems have new releases, we must make hard decisions. Do we adopt the latest and greatest and turn potential technical debt into realized technical debt, or do we err on the side of the stability of our systems, perhaps at the cost of critical performance or security improvements? A reasonable approach is to weigh the benefits we will gain against the costs of dealing with different codegen, stricter language conformance, and deprecated or removed features.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/11\/v145_upgrade_errors_warnings.webp\"><img decoding=\"async\" class=\"alignnone size-full wp-image-35975\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/11\/v145_upgrade_errors_warnings.webp\" alt=\"Visual Studio error window showing various errors and warnings after upgrading to MSVC 14.50\" width=\"1648\" height=\"518\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/11\/v145_upgrade_errors_warnings.webp 1648w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/11\/v145_upgrade_errors_warnings-300x94.webp 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/11\/v145_upgrade_errors_warnings-1024x322.webp 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/11\/v145_upgrade_errors_warnings-768x241.webp 768w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2025\/11\/v145_upgrade_errors_warnings-1536x483.webp 1536w\" sizes=\"(max-width: 1648px) 100vw, 1648px\" \/><\/a><\/p>\n<p>GitHub Copilot app modernization for C++, available in Private Preview in the latest version of Visual Studio 2026 Insiders, tips the scale, greatly reducing the toil incurred when adopting newer versions of MSVC. Let GitHub Copilot churn through that technical debt while you focus on adding that great new feature or finding and resolving the root cause of that bug found by your most important customer.<\/p>\n<p><iframe title=\"YouTube video player\" src=\"\/\/www.youtube.com\/embed\/eCFb_VyNMWU?si=XA3RVh72Ek9HlVVO\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>GitHub Copilot app modernization for C++ can launch the upgrade process, analyze the project for any warnings or errors, create a detailed plan on how to fix those issues, and then implement those changes. Along the way, you\u2019ll have the opportunity to direct Copilot to focus on specific issues and to adjust the plan to fit your exact situation and coding practices. You won\u2019t need to spend hours or days tracking down all the places where that deprecated API is used and manually applying the same pattern to adopt its replacement. And you won\u2019t need to stare at your screen trying to decide which of the hundreds of new warnings should be the first that you should tackle; Copilot may even resolve them all before you\u2019ve had time to understand the work and decide where to start.<\/p>\n<h1>Want to try it out?<\/h1>\n<p>GitHub Copilot app modernization for C++ is now available in Private Preview so that we can gather feedback from users with real world C++ codebases. If you want to help others, including your future self, by helping us make the experience as awesome as possible, please <a href=\"https:\/\/aka.ms\/app-modernization-cpp-private-preview\">join our Private Preview waitlist<\/a>. And in the meantime, go ahead and <a href=\"https:\/\/aka.ms\/vs\/insiders\">get started with the latest Visual Studio 2026 Insiders<\/a> build!<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A few problems have reared their heads at every company where I\u2019ve worked on C++ as a Software Engineer over the past 20 years. For the most part, those problems have nothing to do with the language and how it is used, but instead all the \u201cother\u201d stuff, like dealing with long build times, getting [&hellip;]<\/p>\n","protected":false},"author":85414,"featured_media":34436,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[270,1,3940,3949,3951],"tags":[],"class_list":["post-35974","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcement","category-cplusplus","category-copilot","category-copilot-2","category-frontend"],"acf":[],"blog_post_summary":"<p>A few problems have reared their heads at every company where I\u2019ve worked on C++ as a Software Engineer over the past 20 years. For the most part, those problems have nothing to do with the language and how it is used, but instead all the \u201cother\u201d stuff, like dealing with long build times, getting [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/35974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/85414"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=35974"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/35974\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/34436"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=35974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=35974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=35974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}