{"id":228535,"date":"2020-03-16T10:30:19","date_gmt":"2020-03-16T17:30:19","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/visualstudio\/?p=228535"},"modified":"2020-03-17T12:29:49","modified_gmt":"2020-03-17T19:29:49","slug":"visual-studio-2019-version-16-5","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/visual-studio-2019-version-16-5\/","title":{"rendered":"Visual Studio 2019 version 16.5 is now available"},"content":{"rendered":"<p>The Visual Studio 2019 team here in Redmond has been living under a perpetually grey, wet winter sky since our last minor release. Thankfully, we are beginning to see the sun making regular appearances.\u00a0 It is our hope this newest release will also brighten your day. Visual Studio 2019 version 16.5 contains anticipated new features from XAML, .NET, C++ and Debugging.\u00a0 In addition, we have addressed several issues found in our Preview releases. We believe this combination is ready to make your developer journey more productive. If you have any additional ideas to contribute to our product, we invite you to participate in our <a href=\"https:\/\/developercommunity.visualstudio.com\/\">Developer Community<\/a> forum.<\/p>\n<p>While I elaborate, why not download our latest version to try for yourself? Also keep in mind, a more complete list of all changes are available in the <a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/releases\/2019\/release-notes\">Visual Studio 2019 release notes<\/a>.<\/p>\n<p><div  class=\"d-flex justify-content-center\"><a class=\"cta_button_link btn-primary mb-24\" href=\"https:\/\/visualstudio.microsoft.com\/downloads\/\" target=\"_blank\">Install Visual Studio 2019 v16.5<\/a><\/div><\/p>\n<h3>.NET Mobile Development<\/h3>\n<p>Our first feature to discuss is <a href=\"https:\/\/docs.microsoft.com\/en-us\/xamarin\/xamarin-forms\/xaml\/hot-reload\">XAML Hot Reload for Xamarin.Forms<\/a>. This feature speeds up your development and makes it easier to build, experiment, and iterate over your mobile app&#8217;s user interface. How? You do not need to rebuild your app each time you tweak your UI as changes instantly show while the app is running! Because this updates as you make changes, if you have interacted with the application, the state of the application is not lost as you make the changes.\u00a0 Consequently, you do not have to recreate the repo as you previously did. That&#8217;s pretty exciting, isn&#8217;t it?<\/p>\n<p>We heard lots of feedback on a specific need shared via <a href=\"https:\/\/developercommunity.visualstudio.com\/idea\/699571\/allow-hotreload-on-multiple-devicesemulators-at-th.html\">Developer Community Suggestions<\/a>.\u00a0 Due to the fact, you wanted to see changes made to your XAML reload instantaneously on multiple targets such as an iOS simulator and Android emulator, so we have added that capability.<\/p>\n<h3>\u00a0.NET Productivity<\/h3>\n<p>To help with .NET Productivity several features ship in this Visual Studio 2019 version 16.5 release.<\/p>\n<p>First of all, you can convert <em>if<\/em> statements to <em>switch<\/em> statements or switch expressions. To do this, place your cursor on the if keyword. Press <strong>Ctrl<\/strong>+<strong>.<\/strong> to trigger the <strong>Quick Actions and Refactorings<\/strong> menu. Finally, select <strong>Convert to &#8216;switch&#8217; statement<\/strong> or <strong>Convert to &#8216;switch&#8217; expression<\/strong>.<\/p>\n<p><figure id=\"attachment_228633\" aria-labelledby=\"figcaption_attachment_228633\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"size-full wp-image-228633\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/convert-if-to-switch-statement.png\" alt=\"Image convert if to switch statement\" width=\"1047\" height=\"658\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/convert-if-to-switch-statement.png 1047w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/convert-if-to-switch-statement-300x189.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/convert-if-to-switch-statement-1024x644.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/convert-if-to-switch-statement-768x483.png 768w\" sizes=\"(max-width: 1047px) 100vw, 1047px\" \/><figcaption id=\"figcaption_attachment_228633\" class=\"wp-caption-text\">Convert if to switch statement in Visual Studio 2019.<\/figcaption><\/figure><\/p>\n<h5>IntelliSense<\/h5>\n<p>Furthermore, IntelliSense now supports completion for unimported extension methods. To access this ability, you will need to enable this option in <strong>Tools<\/strong> &gt; <strong>Options<\/strong> &gt; <strong>Text Editor<\/strong> &gt; <strong>C#<\/strong> &gt; <strong>Intellisense<\/strong> &gt; and select <strong>Show items from unimported namespaces(experimental)<\/strong>.<\/p>\n<h5>Simplify Interpolation<\/h5>\n<p><span data-contrast=\"auto\">Additionally, we added the ability to <\/span><span data-contrast=\"none\">simplify string interpolation<\/span><span data-contrast=\"none\"> refactoring. This will help make your <\/span><span data-contrast=\"none\">string interpolation<\/span><span data-contrast=\"none\"> more legible and concise. Place your cursor on the string interpolation. Press <\/span><b><span data-contrast=\"none\">Ctrl+.<\/span><\/b> <span data-contrast=\"none\">to trigger the <\/span><b><span data-contrast=\"none\">Quick Actions and Refactorings<\/span><\/b><span data-contrast=\"none\"> menu and select <\/span><b><span data-contrast=\"none\">Simplify interpolation<\/span><\/b><span data-contrast=\"none\">.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:257}\" data-wac-het=\"1\">\u00a0<\/span><\/p>\n<p><figure id=\"attachment_228543\" aria-labelledby=\"figcaption_attachment_228543\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"size-full wp-image-228543\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/iftoswitchdemo2.png\" alt=\"Simplify interpolation\" width=\"976\" height=\"361\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/iftoswitchdemo2.png 976w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/iftoswitchdemo2-300x111.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/iftoswitchdemo2-768x284.png 768w\" sizes=\"(max-width: 976px) 100vw, 976px\" \/><figcaption id=\"figcaption_attachment_228543\" class=\"wp-caption-text\">You can Simplify Interpolation through the Quick Actions and Refactorings menu.<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p><span data-contrast=\"none\">The<\/span> <span data-contrast=\"none\">Extract local function<\/span> <span data-contrast=\"none\">refactoring allows you to turn a fragment of code from an existing method into a local function. Highlight the code you want extracted. Press <\/span><b><span data-contrast=\"none\">Ctrl+. <\/span><\/b><span data-contrast=\"none\">to trigger the <\/span><b><span data-contrast=\"none\">Quick Actions and Refactorings<\/span><\/b><span data-contrast=\"none\"> menu and select <\/span><b><span data-contrast=\"none\">Extract local function<\/span><\/b><span data-contrast=\"none\">.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\" data-wac-het=\"1\">\u00a0<\/span><\/p>\n<p><figure id=\"attachment_228545\" aria-labelledby=\"figcaption_attachment_228545\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"size-full wp-image-228545\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/stringinterpolations.png\" alt=\"Extract local function\" width=\"943\" height=\"445\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/stringinterpolations.png 943w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/stringinterpolations-300x142.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/stringinterpolations-768x362.png 768w\" sizes=\"(max-width: 943px) 100vw, 943px\" \/><figcaption id=\"figcaption_attachment_228545\" class=\"wp-caption-text\">You can Extract Local Function through the Quick Actions and Refactorings menu<\/figcaption><\/figure><\/p>\n<p><span data-contrast=\"none\">The<\/span> <span data-contrast=\"none\">make members static<\/span> <span data-contrast=\"none\">code fix helps improve readability by making a non-static member static. Place your cursor on the member name. Press <\/span><b><span data-contrast=\"none\">Ctrl+.<\/span><\/b><span data-contrast=\"none\"> to trigger the <\/span><b><span data-contrast=\"none\">Quick Actions and <\/span><\/b><b><span data-contrast=\"none\">Refactorings<\/span><\/b><span data-contrast=\"none\"> menu and select <\/span><b><span data-contrast=\"none\">Make static<\/span><\/b><span data-contrast=\"none\">.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\" data-wac-het=\"1\">\u00a0<\/span><\/p>\n<p><figure id=\"attachment_228544\" aria-labelledby=\"figcaption_attachment_228544\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"size-full wp-image-228544\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/staticformat16-5GA.png\" alt=\"Make a member staticv\" width=\"936\" height=\"383\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/staticformat16-5GA.png 936w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/staticformat16-5GA-300x123.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/staticformat16-5GA-768x314.png 768w\" sizes=\"(max-width: 936px) 100vw, 936px\" \/><figcaption id=\"figcaption_attachment_228544\" class=\"wp-caption-text\">You can make a member static through the Quick Actions and Refactorings menu.<\/figcaption><\/figure><\/p>\n<h4>Testing<\/h4>\n<p><span class=\"TextRun SCXW93323246 BCX1\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart SCXW93323246 BCX1\" data-wac-het=\"1\">Profiling is an excellent tool for identifying performance <\/span><\/span><span class=\"TextRun SCXW93323246 BCX1\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW93323246 BCX1\" data-wac-het=\"1\">i<\/span><\/span><span class=\"TextRun SCXW93323246 BCX1\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW93323246 BCX1\" data-wac-het=\"1\">ssues <\/span><\/span><span class=\"TextRun SCXW93323246 BCX1\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW93323246 BCX1\" data-wac-het=\"1\">in your code. <\/span><\/span>You can now profile a .NET Core test. To do so your .NET Core projects must be configured to <a href=\"https:\/\/docs.microsoft.com\/visualstudio\/debugger\/how-to-set-debug-and-release-configurations?view=vs-2019#generate-symbol-files-for-a-c-aspnet-or-visual-basic-project\">generate full PDB<\/a>\u2019s. We also recommend upgrading to a minimum version of 16.4 for the Microsoft.Test.SDK. This will enable you to profile tests in both x86 and x64 architecture settings. To profile a test, select <strong>Profile<\/strong> from the context menu in the Test Explorer. Test profiling is supported through static instrumentation and <a href=\"https:\/\/docs.microsoft.com\/visualstudio\/profiling\/performance-explorer?view=vs-2017\">Performance Explorer<\/a> (.vsp) document in Visual Studio.<\/p>\n<h4>Debugging in C++ and .NET<\/h4>\n<p><b><span data-contrast=\"auto\">Pinnable Properties <\/span><\/b><span data-contrast=\"auto\">has been <\/span><span data-contrast=\"auto\">a <\/span><span data-contrast=\"auto\">popular <\/span><span data-contrast=\"auto\">tool <\/span><span data-contrast=\"auto\">for managed code<\/span><span data-contrast=\"auto\"> debugging. Specifically, this allows<\/span><span data-contrast=\"auto\"> quick visibility of an object\u2019s property without the need of drilling into an object. This <\/span><span data-contrast=\"auto\">feature<\/span><span data-contrast=\"auto\"> is now <\/span><span data-contrast=\"none\">available in C++ for DataTips and the Autos, Locals, and Watch windows.\u00a0 To use the tool, hover over a property and select the toggle-able pin icon that appears or select the <\/span><b><span data-contrast=\"none\">Pin Member as Favorite<\/span><\/b><span data-contrast=\"none\"> option in the context menu, bubbling your selected property to the top of your debugger display.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\" data-wac-het=\"1\">\u00a0<\/span><\/p>\n<p><figure id=\"attachment_228537\" aria-labelledby=\"figcaption_attachment_228537\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"wp-image-228537 size-full\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GADebugger.png\" alt=\"Pinnable Properties in Debugger\" width=\"1024\" height=\"366\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GADebugger.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GADebugger-300x107.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GADebugger-768x275.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption id=\"figcaption_attachment_228537\" class=\"wp-caption-text\">Pinnable Properties tool in Debugger<\/figcaption><\/figure><\/p>\n<p><span data-contrast=\"none\">We\u2019ve also added a new capability to assist you in debugging multithreaded applications.\u00a0 <\/span><span data-contrast=\"none\">This helps<\/span> <span data-contrast=\"none\">avoid struggling to <\/span><span data-contrast=\"none\">determine the source of a deadlock or other <\/span><span data-contrast=\"none\">thread-related bugs. Subsequently,<\/span><span data-contrast=\"none\"> you can now view which managed thread is holding a .NET object lock in the <\/span><b><span data-contrast=\"none\">Call Stack window, Parallel Stacks window<\/span><\/b><span data-contrast=\"none\"> and the location column of the <\/span><b><span data-contrast=\"none\">Threads window<\/span><\/b><span data-contrast=\"none\">.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\" data-wac-het=\"1\">\u00a0<\/span><\/p>\n<p><figure id=\"attachment_228538\" aria-labelledby=\"figcaption_attachment_228538\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"size-full wp-image-228538\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GADebugger2.png\" alt=\"Call Stack Window\" width=\"1024\" height=\"375\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GADebugger2.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GADebugger2-300x110.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GADebugger2-768x281.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption id=\"figcaption_attachment_228538\" class=\"wp-caption-text\">.NET Object lock in the Call Stack window, Parallel Stacks window<\/figcaption><\/figure><\/p>\n<p><span data-contrast=\"none\">In a previous update, we made it possible to debug processes running in <\/span><b><span data-contrast=\"none\">Docker Linux containers. <\/span><\/b><span data-contrast=\"none\">Now, <\/span><span data-contrast=\"none\">you can <\/span>do the same in <b>Docker Windows containers.<\/b> To give this at try, a<span data-contrast=\"none\">ttach and debug that<\/span><span data-contrast=\"none\"> .NET Framework, .NET Core, and C++<\/span><span data-contrast=\"none\"> process in the <\/span><b><span data-contrast=\"none\">Attach to Process <\/span><\/b><span data-contrast=\"none\">window by selecting the <\/span><b><span data-contrast=\"none\">Docker (Windows Container) <\/span><\/b><span data-contrast=\"none\">connection type<\/span><b><span data-contrast=\"none\">.<\/span><\/b><b><span data-contrast=\"none\">\u00a0\u00a0<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\" data-wac-het=\"1\">\u00a0<\/span><\/p>\n<p><figure id=\"attachment_228539\" aria-labelledby=\"figcaption_attachment_228539\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"size-full wp-image-228539\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GADockerWindow.png\" alt=\"Docker Window Container\" width=\"1024\" height=\"845\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GADockerWindow.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GADockerWindow-300x248.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GADockerWindow-768x634.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption id=\"figcaption_attachment_228539\" class=\"wp-caption-text\">Docker Window Container Process<\/figcaption><\/figure><\/p>\n<p><span data-contrast=\"none\">Finally,<\/span><span data-contrast=\"none\"> for developers building applications on top of the <\/span><a href=\"https:\/\/openenclave.io\/sdk\/\"><span data-contrast=\"none\">Open Enclave SDK<\/span><\/a> <span data-contrast=\"none\">we\u2019ve added debugging support in Visual Studio 2019 version 16.5. So, you can<\/span><span data-contrast=\"none\"> now debug those<\/span> <span data-contrast=\"none\">applications <\/span><span data-contrast=\"none\">from within<\/span><span data-contrast=\"none\"> the product<\/span><span data-contrast=\"none\">, f<\/span><span data-contrast=\"none\">or more info<\/span><span data-contrast=\"none\">rmation<\/span><span data-contrast=\"none\">, go to <\/span><a href=\"http:\/\/aka.ms\/OpenEnclaveVisualStudio\"><span data-contrast=\"none\">aka.ms\/OpenEnclaveVisualStudio<\/span><\/a><span data-contrast=\"none\">.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\" data-wac-het=\"1\">\u00a0<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignright size-full wp-image-228540\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GAdockerwindow2.png\" alt=\"Image 165GAdockerwindow2\" width=\"1636\" height=\"1033\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GAdockerwindow2.png 1636w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GAdockerwindow2-300x189.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GAdockerwindow2-1024x647.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GAdockerwindow2-768x485.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GAdockerwindow2-1536x970.png 1536w\" sizes=\"(max-width: 1636px) 100vw, 1636px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h4>.NET Object Allocation Tool<\/h4>\n<p><span data-contrast=\"auto\">The <\/span><span data-contrast=\"auto\">.<\/span><span data-contrast=\"auto\">NET Object Allocation tool has been updated with changes aimed to help you visualize your data more easily and reduce the time you spend on memory investigations.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\" data-wac-het=\"1\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">First, the backtrace view has been moved to a separate panel to enable you to more easily distinguish between the allocation type and the functions within the type being called. Additionally, when an allocation type is selected the call tree is oriented from the leaf to root node to more quickly see what specific function is allocating the most memory and needs to be changed. Lastly, a new average size column has been added both to the allocation type panel and backtrace view. This information is helpful if you are trying to investigate what allocation types or functions are taking up a lot of memory per allocation. Furthermore, all of these columns are sortable and can be toggled on or off so that you can customize the tables to look the way you want.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\" data-wac-het=\"1\">\u00a0<\/span><\/p>\n<p>Also, take notice of the <span data-contrast=\"auto\">new icons added to the allocation, call tree, and functions view, so it is easier to visualize the classes and structures being allocated. The two icons represent value types (blue) and reference types (yellow). By the way, a number of other user experiences such as more icons and performance improvements are coming soon to Visual Studio<\/span><span data-contrast=\"auto\">!<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\" data-wac-het=\"1\">\u00a0<\/span><\/p>\n<p><figure id=\"attachment_228541\" aria-labelledby=\"figcaption_attachment_228541\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"size-full wp-image-228541\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GAdockerwindow3.png\" alt=\".NET Object Allocation Tool\" width=\"975\" height=\"571\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GAdockerwindow3.png 975w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GAdockerwindow3-300x176.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GAdockerwindow3-768x450.png 768w\" sizes=\"(max-width: 975px) 100vw, 975px\" \/><figcaption id=\"figcaption_attachment_228541\" class=\"wp-caption-text\">.NET Object Allocation Tool<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<h3>C++ Improvements in Visual Studio 2019 version 16.5<\/h3>\n<p><span data-contrast=\"auto\">Visual Studio 2019 version 16.5 brings several improvements to the C++ cross-platform and CMake development experience<\/span><span data-contrast=\"auto\">. Starting with this release, y<\/span><span data-contrast=\"auto\">ou\u2019re now able to interact with your stored rem<\/span><span data-contrast=\"auto\">ote connections over the command line. This is useful for tasks such as provisioning new development machines or setting up Visual Studio in continuous integration.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\" data-wac-het=\"1\">\u00a0<\/span><\/p>\n<p><figure id=\"attachment_228569\" aria-labelledby=\"figcaption_attachment_228569\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"size-full wp-image-228569\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/CPPCommandPrompt.png\" alt=\"Interact with stored remove connections through the Developer Command Prompt\" width=\"977\" height=\"569\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/CPPCommandPrompt.png 977w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/CPPCommandPrompt-300x175.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/CPPCommandPrompt-768x447.png 768w\" sizes=\"(max-width: 977px) 100vw, 977px\" \/><figcaption id=\"figcaption_attachment_228569\" class=\"wp-caption-text\">Interact with stored remove connections through the Developer Command Prompt<\/figcaption><\/figure><\/p>\n<p><span data-contrast=\"auto\">In addition, this release brings the ability to leverage native support for <\/span><a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/wsl\/faq\"><span data-contrast=\"none\">Windows Subsystem for Linux<\/span><\/a><span data-contrast=\"auto\"> when separating your <\/span><span data-contrast=\"auto\">build system from a remote deploy m<\/span><span data-contrast=\"auto\">achine<\/span><span data-contrast=\"auto\">, allowing you to build natively on WSL and to deploy the build artifacts to a second remote <\/span><span data-contrast=\"auto\">machine<\/span> <span data-contrast=\"auto\">for debugging. This workflow is supported by both CMake projects and <\/span><span data-contrast=\"auto\">MSBuild<\/span><span data-contrast=\"auto\">-based Linux projects.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\" data-wac-het=\"1\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Visual Studio version 16.5 makes it easier than ever <\/span><span data-contrast=\"auto\">to <\/span><span data-contrast=\"auto\">work <\/span><span data-contrast=\"auto\">with<\/span><span data-contrast=\"auto\"> CMake projects in Visual Studio. Specifically, t<\/span><span data-contrast=\"auto\">his release brings <\/span><span data-contrast=\"auto\">the ability to <\/span><span data-contrast=\"auto\">add, remove, and rename source files and targets in your CMake projects from the IDE without manually editing your CMake scripts.<\/span> <span data-contrast=\"auto\">When<\/span><span data-contrast=\"auto\"> add<\/span><span data-contrast=\"auto\">ing and <\/span><span data-contrast=\"auto\">remov<\/span><span data-contrast=\"auto\">ing<\/span><span data-contrast=\"auto\"> files with the Solution Explorer, Visual Studio will automatically edit your CMake project. Furthermore, you can also add, remove, and rename the project\u2019s targets from the Solution Explorer\u2019s <\/span><span data-contrast=\"auto\">Targets View, as shown below.<\/span><span data-contrast=\"auto\"> You can learn more <\/span><span data-contrast=\"auto\">about this and r<\/span><span data-contrast=\"auto\">elated features <\/span><span data-contrast=\"auto\">at the <\/span><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/easily-add-remove-and-rename-files-and-targets-in-cmake-projects\/\"><span data-contrast=\"none\">C++ Team Blog<\/span><\/a><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\" data-wac-het=\"1\">\u00a0<\/span><\/p>\n<p><figure id=\"attachment_228567\" aria-labelledby=\"figcaption_attachment_228567\" class=\"wp-caption aligncenter\" ><img decoding=\"async\" class=\"size-full wp-image-228567\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GACMakeTarget.png\" alt=\"Add, remove, and rename source files in CMake projects\" width=\"820\" height=\"637\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GACMakeTarget.png 820w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GACMakeTarget-300x233.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2020\/03\/165GACMakeTarget-768x597.png 768w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><figcaption id=\"figcaption_attachment_228567\" class=\"wp-caption-text\">Add, remove, and rename source files in CMake projects<\/figcaption><\/figure><\/p>\n<p>New CMake code navigation features such as<span data-contrast=\"auto\"> Go <\/span><span data-contrast=\"auto\">To<\/span><span data-contrast=\"auto\"> Definition and Find All References make it easier to explore and understand complex CMake projects. The navigation feature supports variables, functions, and targets in CMake script files.<\/span><span data-contrast=\"auto\"> They work across your entire CMake project to offer more productivity than na\u00efve text search across files and folders. Also, they are integrated with other IDE productivity features such<\/span><span data-contrast=\"auto\"> as <\/span><a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/ide\/how-to-view-and-edit-code-by-using-peek-definition-alt-plus-f12?view=vs-2019\"><span data-contrast=\"none\">Peek Definition<\/span><\/a><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\" data-wac-het=\"1\">\u00a0<\/span><\/p>\n<h3><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\" data-wac-het=\"1\">Download Visual Studio 2019 version 16.5 Today!<\/span><\/h3>\n<p>As you can see, Visual Studio 2019 version 16.5 gives plenty of new functionality to help you with your development projects. Give it a try today and tell us what you think.<\/p>\n<p>Additionally, if you would like to try out future features, check out our Preview channel to give our next product iteration a try. This Preview release brings additional changes to WFT\/UWP Tooling, JavaScript\/TypeScript, and Web Tooling. The <a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/releases\/2019\/release-notes-preview\">version 16.6 Preview 1 release notes<\/a> give full details about each of these features.<\/p>\n<p>As always, we look forward to your feedback!<\/p>\n<p><div  class=\"d-flex justify-content-center\"><a class=\"cta_button_link btn-primary mb-24\" href=\"https:\/\/visualstudio.microsoft.com\/vs\/preview\/\" target=\"_blank\">Try v16.6 Preview 1<\/a><\/div><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Visual Studio 2019 version 16.5 and 16.6 Preview 1 are available today. Included in this release are updates in .NET Productivity, .NET Mobile development, C++, and debugging.<\/p>\n","protected":false},"author":4513,"featured_media":228543,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1028,155],"tags":[237,354,5,9,467,526,12,475,353],"class_list":["post-228535","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mobile","category-visual-studio","tag-net","tag-announcement","tag-csharp","tag-debug","tag-intellicode","tag-productivity","tag-visual-studio","tag-visual-studio-2019","tag-xamarin"],"acf":[],"blog_post_summary":"<p>Visual Studio 2019 version 16.5 and 16.6 Preview 1 are available today. Included in this release are updates in .NET Productivity, .NET Mobile development, C++, and debugging.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/228535","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/4513"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=228535"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/228535\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/228543"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=228535"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=228535"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=228535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}