{"id":21843,"date":"2019-02-19T08:19:18","date_gmt":"2019-02-19T15:19:18","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/dotnet\/?p=21843"},"modified":"2020-04-09T04:36:35","modified_gmt":"2020-04-09T11:36:35","slug":"net-framework-february-2019-preview-of-quality-rollup","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/net-framework-february-2019-preview-of-quality-rollup\/","title":{"rendered":".NET Framework February 2019 Preview of Quality Rollup"},"content":{"rendered":"<p>Today, we released the February 2019 Preview of Quality Rollup.<\/p>\n<h2><a id=\"user-content-security\" class=\"anchor\" href=\"#security\"><\/a>Quality and Reliability<\/h2>\n<p>This release contains the following quality and reliability improvements.<\/p>\n<h3><a id=\"user-content-clr\" class=\"anchor\" href=\"#clr\"><\/a>CLR<\/h3>\n<ul>\n<li>Addresses an issue in System.Threading.Timer where a single global queue that was protected by a single process-wide lock causing a issues with scalability where Timers are used frequently on multi-CPU machine.\u00a0\u00a0The fix can be opted into with an AppContext switch below.\u00a0\u00a0See <a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/api\/system.appcontext?view=netframework-4.7.2#appcontext-for-library-consumers\">instructions<\/a> for enabling the switch.\u00a0 [750048]\n<ul>\n<li>Switch name: <strong>Switch.System.Threading.UseNetCoreTimer<\/strong><\/li>\n<li>Switch value to enable: <strong>true<\/strong>\nDon\u2019t rely on applying the setting programmatically &#8211; the switch value is read only once per AppDomain at the time when the System.Threading.Timer type is loaded.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><a id=\"user-content-sql\" class=\"anchor\" href=\"#sql\"><\/a>SQL<\/h3>\n<ul>\n<li>Addresses an issue that caused compatibility breaks seen in some System.Data.SqlClient usage scenarios. [721209]<\/li>\n<\/ul>\n<h3>WPF<\/h3>\n<ul>\n<li>Improved the memory allocation and cleanup scheduling behavior of the weak-event pattern.\u00a0\u00a0 The fix can be opted into with an AppContext switch below.\u00a0 See <a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/api\/system.appcontext?view=netframework-4.7.2#appcontext-for-library-consumers\">instructions<\/a> for enabling the switch.\u00a0\u00a0[676441]\n<ul>\n<li>Switch name: <strong>Switch.MS.Internal.EnableWeakEventMemoryImprovements<\/strong><\/li>\n<li>Switch name:\u00a0<strong>Switch.MS.Internal.EnableCleanupSchedulingImprovements<\/strong><\/li>\n<li>Switch value to enable: <strong>true<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><a id=\"user-content-getting-the-update\" class=\"anchor\" href=\"#getting-the-update\"><\/a>Getting the Update<\/h2>\n<p>The Preview of Quality Rollup is available via Windows Update, Windows Server Update Services, and Microsoft Update Catalog.<\/p>\n<h3><a id=\"user-content-microsoft-update-catalog\" class=\"anchor\" href=\"#microsoft-update-catalog\"><\/a>Microsoft Update Catalog<\/h3>\n<p>You can get the update via the Microsoft Update Catalog. For Windows 10 update 1607, Windows 10 update 1703, Windows 10 update 1709 and Windows update 1803, the .NET Framework updates are part of the Windows 10 Monthly Rollup.<\/p>\n<p>The following table is for Windows 10 and Windows Server 2016+ versions.<\/p>\n<table>\n<thead>\n<tr class=\"row-1 odd\">\n<th class=\"column-1 x-hidden-focus\">Product Version<\/th>\n<th class=\"column-2\">Cumulative Update KB<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-hover\">\n<tr class=\"row-2 even\">\n<td rowspan=\"2\" class=\"column-1\">Windows 10 1803 (April 2018 Update)<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4487029\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-3 odd\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4487029\" rel=\"noopener noreferrer\" target=\"_blank\">4487029<\/a><\/td>\n<\/tr>\n<tr class=\"row-4 even\">\n<td class=\"column-1\">.NET Framework 3.5, 4.7.2<\/td>\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4487029\" rel=\"noopener noreferrer\" target=\"_blank\">4487029<\/a><\/td>\n<\/tr>\n<tr class=\"row-5 odd\">\n<td rowspan=\"2\" class=\"column-1\">Windows 10 1709 (Fall Creators Update)<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4487021\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-6 even\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4487021\" rel=\"noopener noreferrer\" target=\"_blank\">4487021<\/a><\/td>\n<\/tr>\n<tr class=\"row-7 odd\">\n<td class=\"column-1\">.NET Framework 3.5, 4.7.1, 4.7.2<\/td>\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4487021\" rel=\"noopener noreferrer\" target=\"_blank\">4487021<\/a><\/td>\n<\/tr>\n<tr class=\"row-8 even\">\n<td rowspan=\"2\" class=\"column-1\">Windows 10 1703 (Creators Update)<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4487011\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-9 odd\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4487011\" rel=\"noopener noreferrer\" target=\"_blank\">4487011<\/a><\/td>\n<\/tr>\n<tr class=\"row-10 even\">\n<td class=\"column-1\">.NET Framework 3.5, 4.7, 4.7.1, 4.7.2<\/td>\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4487011\" rel=\"noopener noreferrer\" target=\"_blank\">4487011<\/a><\/td>\n<\/tr>\n<tr class=\"row-11 odd\">\n<td class=\"column-1\">Windows 10 1607 (Anniversary Update)<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=44487006\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-12 even\">\n<td class=\"column-1\">Windows Server 2016<\/td>\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4487006\" rel=\"noopener noreferrer\" target=\"_blank\">4487006<\/a><\/td>\n<\/tr>\n<tr class=\"row-13 odd\">\n<td class=\"column-1\">.NET Framework 3.5, 4.6.2, 4.7, 4.7.1, 4.7.2<\/td>\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4487006\" rel=\"noopener noreferrer\" target=\"_blank\">4487006<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The following table is for earlier Windows and Windows Server versions.<\/p>\n<table>\n<thead>\n<tr class=\"row-1 odd\">\n<th class=\"column-1 x-hidden-focus\">Product Version<\/th>\n<th class=\"column-2\">Preview of Quality Rollup KB<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-hover\">\n<tr class=\"row-2\" role=\"row\">\n<td class=\"column-1\"><strong>Windows 8.1<br> Windows RT 8.1<br> Windows Server 2012 R2<\/strong><\/td>\n<td class=\"column-2\"><strong><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4487258\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><br> <a href=\"https:\/\/support.microsoft.com\/kb\/4487258\" rel=\"noopener noreferrer\" target=\"_blank\">4487258<\/a><\/strong><\/td>\n<\/tr>\n<tr class=\"row-3\" role=\"row\">\n<td rowspan=\"2\" class=\"column-1\">.NET Framework 3.5<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4483459\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-4\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4483459\" rel=\"noopener noreferrer\" target=\"_blank\">4483459<\/a><\/td>\n<\/tr>\n<tr class=\"row-5\">\n<td rowspan=\"2\" class=\"column-1\">.NET Framework 4.5.2<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4483453\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-6\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4483453\" rel=\"noopener noreferrer\" target=\"_blank\">4483453<\/a><\/td>\n<\/tr>\n<tr class=\"row-7\">\n<td rowspan=\"2\" class=\"column-1\">.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4486545\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-8\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4486545\" rel=\"noopener noreferrer\" target=\"_blank\">4486545<\/a><\/td>\n<\/tr>\n<tr class=\"row-9\">\n<td rowspan=\"2\" class=\"column-1\"><strong>Windows Server 2012<\/strong><\/td>\n<td class=\"column-2\"><strong><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4487257\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/strong><\/td>\n<\/tr>\n<tr class=\"row-10\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4487257\" rel=\"noopener noreferrer\" target=\"_blank\">4487257<\/a><\/td>\n<\/tr>\n<tr class=\"row-11\">\n<td rowspan=\"2\" class=\"column-1\">.NET Framework 3.5<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4483456\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-12\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4483456\" rel=\"noopener noreferrer\" target=\"_blank\">4483456<\/a><\/td>\n<\/tr>\n<tr class=\"row-13\">\n<td rowspan=\"2\" class=\"column-1\">.NET Framework 4.5.2<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4483454\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-14\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4483454\" rel=\"noopener noreferrer\" target=\"_blank\">4483454<\/a><\/td>\n<\/tr>\n<tr class=\"row-15\">\n<td rowspan=\"2\" class=\"column-1\">.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4486544\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-16\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4486544\" rel=\"noopener noreferrer\" target=\"_blank\">4486544<\/a><\/td>\n<\/tr>\n<tr class=\"row-17\">\n<td class=\"column-1\"><strong>Windows 7 SP1<br> Windows Server 2008 R2 SP1<\/strong><\/td>\n<td class=\"column-2\"><strong><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4487256\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><br> <a href=\"https:\/\/support.microsoft.com\/kb\/4487256\" rel=\"noopener noreferrer\" target=\"_blank\">4487256<\/a><\/strong><\/td>\n<\/tr>\n<tr class=\"row-18\">\n<td rowspan=\"2\" class=\"column-1\">.NET Framework 3.5.1<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4483458\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-19\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4483458\" rel=\"noopener noreferrer\" target=\"_blank\">4483458<\/a><\/td>\n<\/tr>\n<tr class=\"row-20\">\n<td rowspan=\"2\" class=\"column-1\">.NET Framework 4.5.2<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4483455\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-21\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4483455\" rel=\"noopener noreferrer\" target=\"_blank\">4483455<\/a><\/td>\n<\/tr>\n<tr class=\"row-22\">\n<td rowspan=\"2\" class=\"column-1\">.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4486546\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-23\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4486546\" rel=\"noopener noreferrer\" target=\"_blank\">4486546<\/a><\/td>\n<\/tr>\n<tr class=\"row-24\">\n<td rowspan=\"2\" class=\"column-1\"><strong>Windows Server 2008<\/strong><\/td>\n<td class=\"column-2\"><strong><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4487259\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/strong><\/td>\n<\/tr>\n<tr class=\"row-25\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4487259\" rel=\"noopener noreferrer\" target=\"_blank\">4487259<\/a><\/td>\n<\/tr>\n<tr class=\"row-26\">\n<td rowspan=\"2\" class=\"column-1\">.NET Framework 2.0, 3.0<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4483457\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-27\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4483457\" rel=\"noopener noreferrer\" target=\"_blank\">4483457<\/a><\/td>\n<\/tr>\n<tr class=\"row-28\">\n<td rowspan=\"2\" class=\"column-1\">.NET Framework 4.5.2<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4483455\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-29\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4483455\" rel=\"noopener noreferrer\" target=\"_blank\">4483455<\/a><\/td>\n<\/tr>\n<tr class=\"row-30\">\n<td rowspan=\"2\" class=\"column-1\">.NET Framework 4.6<\/td>\n<td class=\"column-2\"><a href=\"http:\/\/www.catalog.update.microsoft.com\/Search.aspx?q=4486546\" rel=\"noopener noreferrer\" target=\"_blank\">Catalog<\/a><\/td>\n<\/tr>\n<tr class=\"row-31\">\n<td class=\"column-2\"><a href=\"https:\/\/support.microsoft.com\/kb\/4486546\" rel=\"noopener noreferrer\" target=\"_blank\">4486546<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Previous Monthly Rollups<\/h3>\n<h3><a id=\"user-content-previous-monthly-rollups\" class=\"anchor\" href=\"#previous-monthly-rollups\"><\/a><span style=\"font-size: 1rem;\">The last few .NET Framework Monthly updates are listed below for your convenience:<\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/blogs.msdn.microsoft.com\/dotnet\/2019\/02\/13\/net-framework-february-2019-security-and-quality-rollup\/\" rel=\"nofollow\">February 2019 Security and Quality Rollup<\/a><\/li>\n<li><a href=\"https:\/\/blogs.msdn.microsoft.com\/dotnet\/2019\/01\/22\/net-framework-january-22-2018-cumulative-update-for-windows-10-version-1809-and-windows-server-2019\/\" rel=\"nofollow\">January 22, 2018 Cumulative Update for Windows 10 version 1809 and Windows Server 2019<\/a><\/li>\n<li><a href=\"https:\/\/blogs.msdn.microsoft.com\/dotnet\/2019\/01\/15\/net-framework-january-2019-preview-of-quality-rollup\/\" rel=\"nofollow\">January 2019 Preview of Quality Rollup<\/a><\/li>\n<li><a href=\"https:\/\/blogs.msdn.microsoft.com\/dotnet\/2019\/01\/08\/net-framework-january-2019-security-and-quality-rollup\/\" rel=\"nofollow\">January 2019 Security and Quality Rollup<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Today, we released the February 2019 Preview of Quality Rollup. Quality and Reliability This release contains the following quality and reliability improvements. CLR Addresses an issue in System.Threading.Timer where a single global queue that was protected by a single process-wide lock causing an issue with scalability<\/p>\n","protected":false},"author":369,"featured_media":21755,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[195],"tags":[11,1121],"class_list":["post-21843","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet-framework","tag-net-framework","tag-rollup"],"acf":[],"blog_post_summary":"<p>Today, we released the February 2019 Preview of Quality Rollup. Quality and Reliability This release contains the following quality and reliability improvements. CLR Addresses an issue in System.Threading.Timer where a single global queue that was protected by a single process-wide lock causing an issue with scalability<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/21843","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/369"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=21843"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/21843\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/21755"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=21843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=21843"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=21843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}