Issues that this hotfix rollup fixes
CLR JIT issue C# structures are passed by reference, not by value, when the code is run on a computer that has the .NET Framework 4.6 installed and that's using the RyuJIT compiler. One symptom of this bug is that the code represents the data in a collection in the incorrect order (time-series). This change in behavior from earlier versions of the .NET Framework causes various symptoms when clients retrieve time-series data from our data historian.
This issue occurs because of a missing
lvAddrExposed flag for
tmp variables that serve as pass-by-ref arguments, which, in turn corrupts the copy prop phase.
CLR issue An issue in the CLR type loader may cause a deadlock while generic types are being restored from native images. This causes the
ngen createpdb command to fail. This issue is resolved by this hotfix.
Windows Forms issueThe Windows Forms
PrintPreviewDialog UI is initialized very slowly when the following conditions are true:
- A network printer is used.
- User preferences for this printer, such as duplex settings, are modified.
We added a performance optimization to this scenario. If page settings were not modified for a specific page, printer settings for this page are not reapplied (by accessing to the printer spooler). If the application modifies printer settings by using the
QueryPageSettings event handler, print preview generation performance for the affected pages does not improve even if the
opt-in flag is set.
In order to opt in to this optimization, the following key should be added to the app.config file depending on the version of the .NET Framework:
.NET Framework 4.5.2:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
< appSettings >
< add key="OptimizePrintPreview" value="true" />
< /appSettings >
</configuration>
.NET Framework 4.6 or a later version:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
< runtime>
< AppContextSwitchOverrides value = "Switch.System.Drawing.Printing.OptimizePrintPreview=true" />
< /runtime>
</configuration>
If an application can run on either version of the .NET Framework, use both switches in the same file.
To opt out, remove the switch, or set the values to
false.
ClickOnce issueClickOnce has been updated to support TLS 1.1 and 1.2. ClickOnce automatically detects which TLS protocol is required at runtime. There are no extra steps required in ClickOnce to enable this functionality.
Note ClickOnce continues to support TLS 1.0 for the foreseeable future, even though it is
no longer considered PCI-compliant.