diff --git a/releases/README.md b/releases/README.md
index 7297047..c50baa4 100644
--- a/releases/README.md
+++ b/releases/README.md
@@ -8,6 +8,7 @@ To get up-to-date with the latest versions of .NET Framework and Visual Studio,
You can see what was included in each .NET Framework release. Some releases are now unsupported, as called out.
+- [.NET Framework 4.7.1](net471/README.md) (pre-release)
- [.NET Framework 4.7](net47/README.md)
- [.NET Framework 4.6.2](net462/README.md)
- [.NET Framework 4.6.1](net461/README.md)
diff --git a/releases/net471/README.md b/releases/net471/README.md
index af85bc0..cdbf596 100644
--- a/releases/net471/README.md
+++ b/releases/net471/README.md
@@ -1,13 +1,15 @@
-# Early Access to .NET Framework 4.7.1 Build-2538 Release Notes
+# .NET Framework 4.7.1 Release Notes
-You can learn about the changes made in the .NET Framework 4.7.1 build-2538.
+> These release notes are current for .NET Framework 4.7.1 build 2538, released 2017-08-07.
+
+You can learn about the changes made in the .NET Framework 4.7.1, as of build 2538.
- [Download](https://github.com/Microsoft/dotnet-framework-earlyaccess)
-- [Early Access to .NET Framework 4.7.1 build-2538 announcement blog post](https://blogs.msdn.microsoft.com/dotnet/2017/08/07/welcome-to-the-net-framework-4-7-1-early-access/)
+- [Announcement blog post](https://blogs.msdn.microsoft.com/dotnet/2017/08/07/welcome-to-the-net-framework-4-7-1-early-access/)
- [Release notes](dotnet471-changes.md)
- [Known issues](dotnet471-known-issues.md)
-# Release Notes by Product Area
+## Release Notes by Product Area
- [ASP.NET](dotnet471-changes.md#aspnet)
- [BCL](dotnet471-changes.md#bcl)
diff --git a/releases/net471/dotnet471-changes.md b/releases/net471/dotnet471-changes.md
index 6360bf0..1281630 100644
--- a/releases/net471/dotnet471-changes.md
+++ b/releases/net471/dotnet471-changes.md
@@ -1,9 +1,10 @@
-.NET Framework List of Changes for Early Access to .NET Framework 4.7.1 Build-2538
-==================================================================================
+# .NET Framework 4.7.1 Release Notes
-Early Access to .NET Framework 4.7.1 build 2538 contains dozens of bug fixes and improvements.
-This list details those changes, grouped by feature area.
-Each change includes our TFS bug numbers at the end of the line, changed binary name and information on whether the change is a bug or a feature. Please include those numbers in your communication if you wish to contact us to obtain more information about a certain change.
+> These release notes are current for .NET Framework 4.7.1 build 2538, released 2017-08-07.
+
+You can learn about the changes made in the .NET Framework 4.7.1, as of build 2538.
+
+.NET Framework release notes describe product improvements grouped by product area. Each change includes a Microsoft-internal VSTS bug ID, the primary binary that was updated and whether the change was a bug or a feature.
## ASP.NET
@@ -15,13 +16,15 @@ Each change includes our TFS bug numbers at the end of the line, changed binary
* Fixed bug with absolute expiration time when using System.Web.Caching.Cache.Insert(). [453771, System.Web.dll, Bug]
* Fixed accessibility problem where a visually impared user can have less difficulty in identifying property grid entries in high contrast mode for property headers. [459055, System.Web.Extensions.Design.dll, Bug]
* ASP.NET developers now can use this public API to parse a string from SetCookie header to a HttpCookie object:
-static bool HttpCookie.TryParse(string s, out HttpCookie result) [402902, System.Web.dll, Feature]
+ ```csharp
+ static bool HttpCookie.TryParse(string s, out HttpCookie result) [402902, System.Web.dll, Feature]
+ ```
* Added support for SHA-2 hash algorthims for ASP.NET Forms Authentication password format. [405231, System.Web.dll, Feature]
* HttpApplication.OnExecuteStep provides extensibility to ASP.NET pipeline to make it easy for developers to implement features in ambient context pattern and build libraries that cares about ASP.NET execution flow. [406437, System.Web.dll, Feature]
## BCL
-* Fixed a race condition in resource manager which leads to multiple CultureInfo getting created and presented to the client code. This is also fixed in .NET Core - [https://github.com/dotnet/coreclr/pull/8656](https://github.com/dotnet/coreclr/pull/8656) [99146, mscorlib.dll, Bug]
+* Fixed a race condition in resource manager which leads to multiple CultureInfo getting created and presented to the client code. This is also fixed in .NET Core - [dotnet/coreclr #8656](https://github.com/dotnet/coreclr/pull/8656) [99146, mscorlib.dll, Bug]
* Improved reliability of Parallel.For on x86 systems. [99779, mscorlib.dll, Bug]
* Fixed an issue where two threads attempting to load the same assembly may crash the process. [211676, mscorlib.dll, Bug]
* Fixed an issue in ReaderWriterLockSlim where an attempt to enter a write lock that times out does not release waiting attempts to acquire read or upgradeable read locks [216022, System.Core.dll, Bug]
@@ -46,25 +49,24 @@ static bool HttpCookie.TryParse(string s, out HttpCookie result) [402902, System
## CLR
* Managed threads that exit don't get finalized until a GC of an appropriate generation is triggered. Applications that are mostly idle but occasionally create threads or have timers with long periods may accumulate a large number of handles as shown by Task Manager. This issue is fixed by triggering a GC of an appropriate generation based on the number of threads. [134926, clr.dll, Bug]
-* Fixed reliability problem for using string hashing before initializing the appdomain which used to crash the apps. This is also fixed in .NET Core - [https://github.com/dotnet/coreclr/issues/10843](https://github.com/dotnet/coreclr/issues/10843) [213531, clr.dll, Bug]
+* Fixed reliability problem for using string hashing before initializing the appdomain which used to crash the apps. This is also fixed in .NET Core - [dotnet/coreclr #10843](https://github.com/dotnet/coreclr/issues/10843) [213531, clr.dll, Bug]
* Exceptions from services that fail to start will now be propagated from ServiceBase.Run. [226883, System.ServiceProcess.dll, Bug]
* Fixed a silent bad code generation issue in RyuJit. The conditions for the silent bad code generation are as follows: [282492, clrjit.dll, Bug]
- - The method has a tail call that the JIT decides to dispatch as a fast tail call (without calling a helper).
- - Both the caller and the callee have arguments passed on the stack.
- - One of the arguments passed on the stack to the caller is a 1, 2, 4, or 8-byte struct.
- - Some or all of the fields of that struct are used to compute a callee argument passed in a register.
- - If the abovementioned conditions are met, the JIT may generate bad code for the callee register argument. The callee will see an incorrect value.
+ * The method has a tail call that the JIT decides to dispatch as a fast tail call (without calling a helper).
+ * Both the caller and the callee have arguments passed on the stack.
+ * One of the arguments passed on the stack to the caller is a 1, 2, 4, or 8-byte struct.
+ * Some or all of the fields of that struct are used to compute a callee argument passed in a register.
+ * If the abovementioned conditions are met, the JIT may generate bad code for the callee register argument. The callee will see an incorrect value.
* Improved resiliency to shutdown finalization for portable PDB. [360526, System.dll, Bug]
* Fixed a rare issue that can cause hangs in programs that use background GC and exhibit specific patterns of GC handle usage. [369415, clr.dll, Bug]
* Fixed a deadlock in TraceSource initialization. [387336, System.dll, Bug]
-* After many instances of ReaderWriterLock are created, an instance may hang while upgrading to a write lock. A new configuration variable is exposed, and may be specified as an environment variable (COMPlus_ReaderWriterLock_UseFixedIdGeneration=1) to fix this problem. [395943, clr.dll, Bug]
+* After many instances of ReaderWriterLock are created, an instance may hang while upgrading to a write lock. A new configuration variable is exposed, and may be specified as an environment variable (COMPlus\_ReaderWriterLock\_UseFixedIdGeneration=1) to fix this problem. [395943, clr.dll, Bug]
* Fixed intermittent deadlock during GC with complex generic types. [399387, clr.dll, Bug]
* Fixed a problem where rare crashes or deadlocks happens if a GC occurs while another thread is running NGen'ed code which is making the initial call into a static method within the same module where one or more parameter types involve type-forwarded valuetypes. [404234, clr.dll, Bug]
* Managed threads that exit don't get finalized until a GC of an appropriate generation is triggered. Applications that are mostly idle but occasionally create threads or have timers with long periods may accumulate a large number of handles as shown by Task Manager. This problem is now fixed by triggering a GC of an appropriate generation based on the number of threads that have exited but are not finalized. [407602, clr.dll, Bug]
* Exception.StackTrace now supports displaying source line information for stack frames in assemblies that use pdbs in the new portable pdb format. This is common for libraries that are built targeting .Net standard. [410959, clr.dll, mscorlib.dll, System.Core.dll, Bug]
* Fixed intermittent crash during GC with ETW memory tracing turned on. [425084, clr.dll, Bug]
-* SerialPort streams no longer terminate the process when exceptions occur on the background thread. This can happen when removing a USB serial port while in use.
-This new behavior is controlled by the Switch.System.IO.Ports.DoNotCatchSerialStreamThreadExceptions AppContext switch. This switch is set to ""truetf get"" by default when targeting .NET 4.7 or below. [428461, System.dll, Bug]
+* SerialPort streams no longer terminate the process when exceptions occur on the background thread. This can happen when removing a USB serial port while in use. This new behavior is controlled by the `Switch.System.IO.Ports.DoNotCatchSerialStreamThreadExceptions` AppContext switch. This switch is set to `truetf get` by default when targeting .NET 4.7 or below. [428461, System.dll, Bug]
* Updated headers to use HTTPS instead of HTTP in URLs. [447119, mscoree.h, cor.h, Bug]
* Fixed infinite loop in the jit which happens in certain cases where cgt.un is used to implement a null check. [453201, clrjit.dll, Bug]
* Fixed a silent bad codegen problem in JIT that results in incorrect results from XslCompiledTransform. [461649, clrjit.dll, Bug]
@@ -81,7 +83,7 @@ This new behavior is controlled by the Switch.System.IO.Ports.DoNotCatchSerialSt
* Introduced Configuration Builders that allow developers a way to build configuration for applications at runtime from dynamic or centralized sources. [405224, System.Configuration.dll, Feature]
## Networking
-
+
* Fixed security vulnerability tracked by Microsoft Common Vulnerabilities and Exposures [CVE-2017-0248](https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-0248) [364538, System.dll, Bug]
* Fixed a problem with HTTP POST requests that require authentication and resubmit. [369338, System.dll, Bug]
* Add 8 new properties to System.Net.Http.HttpClientHandler to align with NETStandard2.0. [386926, System.Net.Http.dll, Bug]
@@ -132,26 +134,26 @@ This new behavior is controlled by the Switch.System.IO.Ports.DoNotCatchSerialSt
* Fixed rendering error in Workflow designer in Sharepoint. [361982, System.Activities.Presentation.dll, Bug]
* Improved accessibility in Workflow designer. Specifically there are fixes in high contrast mode, focus of different controls and dialogs and name properties [407062, 407067, 407068, 407069, 407070, 407072, 407075, 407076, 407080, 407085, 407086, 407097, 407407, 407408, 407411, 407414, 407415, 407428, 407436, 407442, 407444, 407450, 407462, 407463, 407467, 408030, 408035, 408043, 408073, 408077, 408158, 408282, 408315, 408329, 409027, 409645, 409719, 409723, 409731, 434137, 445109, 447654, System.Activities.Presentation.dll, Bug]
* New enumerator values are added for System.Messaging.HashAlgorithm to allow developers to choose SHA256, SHA384, and SHA512. Also, the default hashing algorithm if one is not specified is SHA512. For backward compatibility where customers must continue to use MD5, the following must be added to the app.config file for the application: [394583, System.Messaging.dll, Feature]
-```
-
-
-
-```
+ ```xml
+
+
+
+ ```
## WPF
* Nested popups with StaysOpen="False" now work as expected. [94132, PresentationFramework.dll, Bug]
* Fixed a bug in which DataGrid displays the wrong value after committing edits to a normalizing property. [158520, PresentationFramework.dll, Bug]
-* On Windows 10, WPF applications running in a locked or disconnected user session sometimes consume CPU cycles unexpectedly. This could also manifest as application crash that is observed as soon as the user logs back onto their session. This fix addresses this problem and improves the overall performance and reliablity of WPF applications running on Windows 10. [165554, WindowsBase.dll, PresentationCore .dll, wpfgfx_v0400.dll, Bug]
+* On Windows 10, WPF applications running in a locked or disconnected user session sometimes consume CPU cycles unexpectedly. This could also manifest as application crash that is observed as soon as the user logs back onto their session. This fix addresses this problem and improves the overall performance and reliablity of WPF applications running on Windows 10. [165554, WindowsBase.dll, PresentationCore .dll, wpfgfx\_v0400.dll, Bug]
* Fixed crashes and incorrect focus when pressing arrow keys in a TreeView or Ribbon that contains Hyperlinks. [170274, PresentationFramework.dll, Bug]
* In WPF applications running on Windows 10 Anniversary Update or greater, WPF will automatically invoke the touch keyboard in applicable scenarios. In .NET 4.7.1, WPF applications may opt out of this behavior by adding the following to their application configuration file, merging this switch with the AppContextSwitchOverrides list. [362756, PresentationCore.dll, Bug]
-```
-
-
-
-
-
-```
+ ```xml
+
+
+
+
+
+ ```
* Support for font changes from Windows 10 Creators Update that involves updates to WPF font fallbacks. [368999, PresentationCore.dll, Bug]
* Added LiveSetting/LiveRegion support to WPF’s Automation provider APIs. Developers can now set the LiveSetting dependency property and raise the LiveRegionChanged event via RaiseAutomationEvent. [386494, UIAutomationClient.dll, Bug]
* Fixed crash when an async binding refers to a dynamic object. [388736, PresentationFramework.dll, Bug]
@@ -160,13 +162,12 @@ This new behavior is controlled by the Switch.System.IO.Ports.DoNotCatchSerialSt
* Fixed a crash occurring when removing the SelectedItem from a collection with a custom implementation of INotifyCollectionChanged that does not report the position of the removed item. [424259, PresentationFramework.dll, Bug]
* Fixed a crash in PenIMC. [424827, PenIMC.dll , Bug]
* Applications written in WPF and running on touch/stylus enabled devices leak a handle on shutdown of a Dispatcher thread. This change appropriately cleans up the handle and fixes the leak. [434938, PenIMC.dll , Bug]
-* PackageDigitalSignatureManager.DefaultHashAlgorithm is now SHA256 for applications running on .NET 4.7.1 and targeting .NET 4.6.2 and above. This impacts the default message digest algorithm and signature method for XPS document signing (XpsDocument.SignDigitally) and Package signing (PackageDigitalSignatureManager.Sign).
-Developers running on .NET 4.7.1 targeting .NET 4.6.2 and above who require SHA1 defaults may enable a compatibility AppContext flag by adding: ""Switch.MS.Internal.UseSha1AsDefaultHashAlgorithmForDigitalSignatures=true"" to their AppConfig's AppContextSwitchOverrides. This also allows developers running on .NET 4.7.1 and targeting .NET 4.6.1 and below to enable the new default setting by setting this to false. [436861, WindowsBase.dll, Bug]
-* Fixed an infinite loop that can occur while resizing a Grid when (a) two row definitions declare a *-height, a MinHeight, and a MaxHeight, (b) neither row's content exceeds the MaxHeight, and (c) the first MinHeight, plus any other fixed or Auto rows, exceeds the Grid's available height (even without considering the second MinHeight). There's a similar fix for columns and width. [442027, PresentationFramework.dll, Bug]
+* PackageDigitalSignatureManager.DefaultHashAlgorithm is now SHA256 for applications running on .NET 4.7.1 and targeting .NET 4.6.2 and above. This impacts the default message digest algorithm and signature method for XPS document signing (XpsDocument.SignDigitally) and Package signing (PackageDigitalSignatureManager.Sign). Developers running on .NET 4.7.1 targeting .NET 4.6.2 and above who require SHA1 defaults may enable a compatibility AppContext flag by adding: `Switch.MS.Internal.UseSha1AsDefaultHashAlgorithmForDigitalSignatures=true` to their AppConfig's AppContextSwitchOverrides. This also allows developers running on .NET 4.7.1 and targeting .NET 4.6.1 and below to enable the new default setting by setting this to false. [436861, WindowsBase.dll, Bug]
+* Fixed an infinite loop that can occur while resizing a Grid when (a) two row definitions declare a \*-height, a MinHeight, and a MaxHeight, (b) neither row's content exceeds the MaxHeight, and (c) the first MinHeight, plus any other fixed or Auto rows, exceeds the Grid's available height (even without considering the second MinHeight). There's a similar fix for columns and width. [442027, PresentationFramework.dll, Bug]
* WPF Accessibility:High Contrast improvements - WPF applications running in high contrast themes, as well as those interacting with screen readers will see various improvements. To enable these changes, set the target framework to 4.7.1 or add "Switch.UseLegacyAccessibilityFeatures=false" to your AppContextSwitchOverrides. [447592, PresentationFramework.dll, PresentationCore.dll, Bug]
* Fixed problem where WPF fails to load resources if two versions of the same assembly are loaded. [454391, PresentationFramework.dll, Bug]
-* Fixed ComException in PenIMC_v400 that results in WPF application crashes. [463347, PenIMC2_v0400.dll, PenIMC_v0400.dll, Bug]
-* On a machine with touch or stylus device, loading a .NET 3.5 WPF application and a .NET 4.x WPF application side-by-side in the same process can result in heap corruption. This change fixes this problem allowing side-by-side execution in the same process on touch/stylus enabled devices. [377651, PenIMC.dll, PenIMC_v0400.dll, PresentationCore.dll, WindowsBase.dll, Feature]
+* Fixed ComException in PenIMC\_v400 that results in WPF application crashes. [463347, PenIMC2\_v0400.dll, PenIMC\_v0400.dll, Bug]
+* On a machine with touch or stylus device, loading a .NET 3.5 WPF application and a .NET 4.x WPF application side-by-side in the same process can result in heap corruption. This change fixes this problem allowing side-by-side execution in the same process on touch/stylus enabled devices. [377651, PenIMC.dll, PenIMC\_v0400.dll, PresentationCore.dll, WindowsBase.dll, Feature]
* Added support for updating visual tree after changing implicit data template. [406804, PresentationFramework.dll, Feature]
* Added ability to tell whether a property value inside a template is a dynamic resource reference. [406807, PresentationFramework.dll, Feature]
* Provided source info for elements in template created by XamlReader.Load [406808, PresentationFramework.dll, Feature]
diff --git a/releases/net471/dotnet471-known-issues.md b/releases/net471/dotnet471-known-issues.md
index 1e8fecb..c32cc5b 100644
--- a/releases/net471/dotnet471-known-issues.md
+++ b/releases/net471/dotnet471-known-issues.md
@@ -1,4 +1,4 @@
.NET Framework 4.7.1 Known Issues
=================================
-There are no known issues at this time.
+There are no known issues as of build 2538.