.NET Framework (4) 歷史舊版本 Page7

最新版本 .NET Framework 4.8.1

.NET Framework (4) 歷史版本列表

.NET Framework 是微軟全面而一致的編程模型,用於構建具有視覺效果令人驚嘆的用戶體驗,無縫和安全通信的應用程序,以及模擬一系列業務流程的能力。 Microsoft .NET Framework 4 可再發行組件包將安裝.NET Framework 運行時和運行和開發應用程序所需的關聯文件,以將目標.NET Framework 4.6 和更高版本的 Framework Framework... .NET Framework (4) 軟體介紹


DVDFab Passkey Lite 9.3.2.0 查看版本資訊

更新時間:2018-09-27
更新細節:

What's new in this version:

New:
- Added the support for some new Java protections

Fix:
- A problem that the Lite version cannot start up in certain cases

DVDFab Passkey Lite 9.3.1.9 查看版本資訊

更新時間:2018-09-05
更新細節:

What's new in this version:

New:
- Added the support for some new Java protections
- Added the support to identify and access the main title from unprotected Blu-ray ISO files and folders
- Improved the support for the BluPath feature

DVDFab Passkey Lite 9.3.1.8 查看版本資訊

更新時間:2018-08-17
更新細節:

What's new in this version:

- Added the support for the new copy protections as found on DVD Traffik, The Big Sick and The Last Flag Flying
- Added the support to remove the Blu-ray country code at Settings > Blu-ray > Remove Blu-ray Country Code

DVDFab Passkey Lite 9.3.1.7 查看版本資訊

更新時間:2018-07-24
更新細節:

What's new in this version:

- New: Added the support for some new Java protections

DVDFab Passkey Lite 9.3.1.6 查看版本資訊

更新時間:2018-07-18
更新細節:

What's new in this version:

New:
- Added the support to remove the country code of certain Blu-ray discs

Fix:
- A problem that the CPRM protected discs fail to rip on certain drives

DVDFab Passkey Lite 9.3.1.5 查看版本資訊

更新時間:2018-07-11
更新細節:

What's new in this version:

- New: Added the support for some new Java protections

DVDFab Passkey Lite 9.3.1.4 查看版本資訊

更新時間:2018-07-05
更新細節:

What's new in this version:

New:
- Added the support for some new Java protections
- Added the support to reset the Blu-ray region code of PowerDVD 18

.NET Framework Version 4.7.2 查看版本資訊

更新時間:2018-05-01
更新細節:

What's new in this version:

CORE:
- The .NET Framework 4.7.2 features a large number of cryptographic enhancements, better decompression support for ZIP archives, and additional collection APIs

New overloads of RSA.Create and DSA.Create:
- The DSA.Create(DSAParameters) and RSA.Create(RSAParameters) methods let you supply key parameters when instantiated a new DSA or RSA key

Rfc2898DeriveBytes constructors accept a hash algorithm name:
- The Rfc2898DeriveBytes class has three new constructors with a HashAlgorithmName parameter that identifies the HMAC algorithm to use when deriving keys. Instead of using SHA-1, developers should use a SHA-2-based HMAC like SHA-256

Support for ephemeral keys:
PFX import can optionally load private keys directly from memory, bypassing the hard drive. When the new X509KeyStorageFlags.EphemeralKeySet flag is specified in an X509Certificate2 constructor or one of the overloads of the X509Certificate2.Import method, the private keys will be loaded as ephemeral keys. This prevents the keys from being visible on the disk. However:
- Since the keys are not persisted to disk, certificates loaded with this flag are not good candidates to add to an X509Store.
- Keys loaded in this manner are almost always loaded via Windows CNG. Therefore, callers must access the private key by calling extension methods, such as cert.GetRSAPrivateKey(). The X509Certificate2.PrivateKey property does not function.
- Since the legacy X509Certificate2.PrivateKey property does not work with certificates, developers should perform rigorous testing before switching to ephemeral keys.

Programmatic creation of PKCS#10 certification signing requests and X.509 public key certificates:
- Starting with the .NET Framework 4.7.2, workloads can generate certificate signing requests (CSRs), which allows certificate request generation to be staged into existing tooling. This is frequently useful in test scenarios

New SignerInfo members:
- Starting with the .NET Framework 4.7.2, the SignerInfo class exposes more information about the signature. You can retrieve the value of the System.Security.Cryptography.Pkcs.SignerInfo.SignatureAlgorithm property to determine the signature algorithm used by the signer. SignerInfo.GetSignature can be called to get a copy of the cryptographic signature for this signer
- Leaving a wrapped stream open after CryptoStream is disposed
- Starting with the .NET Framework 4.7.2, the CryptoStream class has an additional constructor that allows Dispose to not close the wrapped stream

Decompression changes in DeflateStream:
- Starting with the .NET Framework 4.7.2, the implementation of decompression operations in the DeflateStream class has changed to use native Windows APIs by default. Typically, this results in a substantial performance improvement.
- Support for decompression by using Windows APIs is enabled by default for applications that target .NET Framework 4.7.2. Applications that target earlier versions of .NET Framework but are running under .NET Framework 4.7.2 can opt into this behavior by adding the following AppContext switch to the application configuration file: <AppContextSwitchOverrides value="Switch.System.IO.Compression.DoNotUseNativeZipLibraryForDecompression=false" />

Additional collection APIs:
- The .NET Framework 4.7.2 adds a number of new APIs to the SortedSet<T> and HashSet<T> types

ASP.NET:
Support for dependency injection in Web Forms:
Dependency injection (DI) decouples objects and their dependencies so that an object's code no longer needs to be changed just because a dependency has changed. When developing ASP.NET applications that target the .NET Framework 4.7.2, you can:
- Use setter-based, interface-based, and constructor-based injection in handlers and modules, Page instances, and user controls of ASP.NET web application projects
- Use setter-based and interface-based injection in handlers and modules, Page instances, and user controls of ASP.NET web site projects
- Plug in different dependency injection frameworks

Support for same-site cookies:
- SameSite prevents a browser from sending a cookie along with a cross-site request. The .NET Framework 4.7.2 adds a HttpCookie.SameSite property whose value is a System.Web.SameSiteMode enumeration member. If its value is SameSiteMode.Strict or SameSiteMode.Lax, ASP.NET adds the SameSite attribute to the set-cookie header. SameSite support applies to HttpCookie objects, as well as to FormsAuthentication and System.Web.SessionState cookies

NETWORKING:
Implementation of HttpClientHandler properties:
The .NET Framework 4.7.1 added eight properties to the System.Net.Http.HttpClientHandler class. However, two threw a PlatformNotSupportedException. The .NET Framework 4.7.2 now provides an implementation for these properties. The properties are:
- CheckCertificateRevocationList
- SslProtocols

SQLCLIENT:
- Support for Azure Active Directory Universal Authentication and Multi-Factor authentication
- Growing compliance and security demands require that many customers use multi-factor authentication (MFA). In addition, current best practices discourage including user passwords directly in connection strings. To support these changes, the .NET Framework 4.7.2 extends SQLClient connection strings by adding a new value, "Active Directory Interactive", for the existing "Authentication" keyword to support MFA and Azure AD Authentication. The new interactive method supports native and federated Azure AD users as well as Azure AD guest users. When this method is used, the MFA authentication imposed by Azure AD is supported for SQL databases. In addition, the authentication process requests a user password to adhere to security best practices.
- In previous versions of the .NET Framework, SQL connectivity supported only the SqlAuthenticationMethod.ActiveDirectoryPassword and SqlAuthenticationMethod.ActiveDirectoryIntegrated options. Both of these are part of the non-interactive ADAL protocol, which does not support MFA. With the new SqlAuthenticationMethod.ActiveDirectoryInteractive option, SQL connectivity supports MFA as well as existing authentication methods (password and integrated authentication), which allows users to enter user passwords interactively without persisting passwords in the connection string.
- Support for Always Encrypted version 2

NET Framework 4.7.2 adds supports for enclave-based Always Encrypted. The original version of Always Encrypted is a client-side encryption technology in which encryption keys never leave the client. In enclave-based Always Encrypted, the client can optionally send the encryption keys to a secure enclave, which is a secure computational entity that can be considered part of SQL Server but that SQL Server code cannot tamper with. To support enclave-based Always Encrypted, the .NET Framework 4.7.2 adds the following types and members to the System.Data.SqlClient namespace:
- SqlConnectionStringBuilder.EnclaveAttestationUrl, which specifies the Uri for enclave-based Always Encrypted
- SqlColumnEncryptionEnclaveProvider, which is an abstract class from which all enclave providers are derived
- SqlEnclaveSession, which encapsulates the state for a given enclave session
- SqlEnclaveAttestationParameters, which provides the attestation parameters used by SQL Server to get information required to execute a particular Attestation Protocol

WINDOWS PRESENTATION FOUNDATION:
Finding ResourceDictionaries by Source:
- Starting with the .NET Framework 4.7.2, a diagnostic assistant can locate the ResourceDictionaries that have been created from a given source Uri. (This feature is for use by diagnostic assistants, not by production applications.) A diagnostic assistant such as Visual Studio’s “Edit-and-Continue” facility lets its user edit a ResourceDictionary with the intent that the changes be applied to the running application. One step in achieving this is finding all the ResourceDictionaries that the running application has created from the dictionary that’s being edited. For example, an application can declare a ResourceDictionary whose content is copied from a given source URI: <ResourceDictionary Source="MyRD.xaml">
- A diagnostic assistant that edits the original markup in MyRD.xaml can use the new feature to locate the dictionary. The feature is implemented by a new static method, ResourceDictionaryDiagnostics.GetResourceDictionariesForSource. The diagnostic assistant calls the new method using an absolute Uri that identifies the original markup, as illustrated by the following code: IEnumerable<ResourceDictionary> dictionaries = ResourceDictionaryDiagnostics.GetResourceDictionariesForSource(new Uri("pack://application:,,,/MyApp;component/MyRD.xaml"));

Finding ResourceDictionary owners:
- Starting with the .NET Framework 4.7.2, a diagnostic assistant can locate the owners of a given ResourceDictionary. (The feature is for use by diagnostic assistants and not by production applications.) Whenever a change is made to a ResourceDictionary, WPF automatically finds all DynamicResource references that might be affected by the change.
- A diagnostic assistant such as Visual Studio’s “Edit-and-Continue” facility may want extend this to handle StaticResource references. The first step in this process is to find the owners of the dictionary; that is, to find all the objects whose Resources property refers to the dictionary (either directly, or indirectly via the ResourceDictionary.MergedDictionaries property). Three new static methods implemented on the System.Windows.Diagnostics.ResourceDictionaryDiagnostics class, one for each of the base types that has a Resources property

Finding StaticResource references:
- A diagnostic assistant can now receive a notification whenever a StaticResource reference is resolved. (The feature is for use by diagnostic assistants, not by production applications.) A diagnostic assistant such as Visual Studio’s “Edit-and-Continue” facility may want to update all uses of a resource when its value in a ResourceDictionary changes. WPF does this automatically for DynamicResource references, but it intentionally does not do so for StaticResource references. Starting with the .NET Framework 4.7.2, the diagnostic assistant can use these notifications to locate those uses of the static resource.

CLICKONCE:
- HDPI-aware applications for Windows Forms, Windows Presentation Foundation (WPF), and Visual Studio Tools for Office (VSTO) can all be deployed by using ClickOnce. If the following entry is found in the application manifest, deployment will succeed under .NET Framework 4.7.2: <windowsSettings> <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware></windowsSettings>
- For Windows Forms application, the previous workaround of setting DPI awareness in the application configuration file rather than the application manifest is no longer necessary for ClickOnce deployment to succeed

.NET Framework Version 4.7.1 查看版本資訊

更新時間:2017-10-18
更新細節:

What's new in this version:

CORE:
Support for .NET Standard 2.0:
- .NET Standard defines a set of APIs that must be available on each .NET implementation that supports that version of the standard. The .NET Framework 4.7.1 fully supports .NET Standard 2.0 and adds about 200 APIs that are defined in .NET Standard 2.0 and are missing from the .NET Framework 4.6.1, 4.6.2, and 4.7. (Note that these versions of the .NET Framework support .NET Standard 2.0 only if additional .NET Standard support files are also deployed on the target system.)

Support for configuration builders:
- Configuration builders allow developers to inject and build configuration settings for applications dynamically at run time. Custom configuration builders can be used to modify existing data in a configuration section or to build a configuration section entirely from scratch. Without configuration builders, .config files are static, and their settings are defined some time before an application is launched
- To create a custom configuration builder, you derive your builder from the abstract ConfigurationBuilder class and override its ConfigurationBuilder.ProcessConfigurationSection and ConfigurationBuilder.ProcessRawXml. You also define your builders in your .config file

Run-time feature detection:
- The System.Runtime.CompilerServices.RuntimeFeature class provides a mechanism for determine whether a predefined feature is supported on a given .NET implementation at compile time or run time. At compile time, a compiler can check whether a specified field exists to determine whether the feature is supported; if so, it can emit code that takes advantage of that feature. At run time, an application can call the RuntimeFeature.IsSupported method before emitting code at runtime. For more information, see Add helper method to describe features supported by the runtime

Value tuple types are serializable:
- Starting with the .NET Framework 4.7.1, System.ValueTuple and its associated generic types are marked as Serializable, which allows binary serialization. This should make migrating Tuple types, such as Tuple<T1,T2,T3> and Tuple<T1,T2,T3,T4>, to value tuple types easier

Support for read-only references:
- The .NET Framework 4.7.1 adds the System.Runtime.CompilerServices.IsReadOnlyAttribute. This attribute is used by language compilers to mark members that have read-only ref return types or parameters. For more information, see "Compiler -- Support for ReadOnlyReferences" in the .NET Framework 4.7.1 Runtime and Compiler Features blog post. For information on ref return values, see Ref return values and ref locals (C# Guide) and Ref return values (Visual Basic)

COMMON LANGUAGE RUNTIME (CLR):
Garbage collection performance improvements:
- Changes to garbage collection (GC) in the .NET Framework 4.7.1 improve overall performance, especially for Large Object Heap (LOH) allocations. In the .NET Framework 4.7.1, separate locks are used for Small Object Heap (SOH) and LOH allocations, which allows LOH allocations to occur when Background GC (BGC) is sweeping the SOH. As a result, applications that make a large number of LOH allocations should see a reduction in allocation lock contention and improved performance

Support for portable PDBs:
- The .NET Framework starting with version 4.7.1 supports portable PDBs. While standard PDB files are Windows-only, portable PDB files can be created and read on all platforms. In most cases, the file format is transparent to an application running on a particular .NET implementation. An exception is an application that dynamically emits an assembly at run time; in this case, the ability to emit a portable PDB can offer a performance improvement and reduce the application's memory footprint. You can determine at run time whether portable PDBs are supported on the current .NET implementation by passing the string "PortablePdb" to the RuntimeFeature.IsSupported(String) method before emitting the assembly

NETWORKING:
SHA-2 support for Message.HashAlgorithm:
- In the .NET Framework 4.7 and earlier versions, the Message.HashAlgorithm property supported values of HashAlgorithm.Md5 and HashAlgorithm.Sha only. Starting with the .NET Framework 4.7.1, HashAlgorithm.Sha256, HashAlgorithm.Sha384, and HashAlgorithm.Sha512 are also supported. Whether this value is actually used depends on MSMQ, since the Message instance itself does no hashing but simply passes on values to MSMQ

ASP.NET:
Execution steps in ASP.NET applications:
- ASP.NET processes requests in a predefined pipeline that includes 23 events. ASP.NET executes each event handler as an execution step. In versions of ASP.NET up to the .NET Framework 4.7, ASP.NET can't flow the execution context due to switching between native and managed threads. Instead, ASP.NET selectively flows only the HttpContext. Starting with the .NET Framework 4.7.1, the HttpApplication.OnExecuteRequestStep(Action<HttpContextBase,Action>) method also allows modules to restore ambient data. This feature is targeted at libraries concerned with tracing, profiling, diagnostics, or transactions, for example, that care about the execution flow of the application

ASP.NET HttpCookie parsing:
- The .NET Framework 4.7.1 includes a new method, HttpCookie.TryParse, that provides a standardized way to create an HttpCookie object from a string and accurately assign cookie values such as expiration date and path

SHA-2 hash options for ASP.NET forms authentication credentials:
- In the .NET Framework 4.7 and earlier versions, ASP.NET allowed developers to store user credentials with hashed passwords in configuration files using either MD5 or SHA1. Starting with the .NET Framework 4.7.1, ASP.NET also supports new secure SHA-2 hash options such as SHA256, SHA384, and SHA512. SHA1 remains the default, and a non-default hash algorithm can be defined in the web configuration file

.NET Framework Version 4.7 查看版本資訊

更新時間:2017-04-07
更新細節:

What's new in this version:

- .NET Framework 4.7 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. Please include those numbers in your communication if you wish to contact us to obtain more information.

CLR:
- Fixed buffer overflows with large manifests in EventSource.
- If a COM interface contain setter only indexed property, Tlbimp will generate incorrect setter property metadata.
- Implemented IEnumerator in EventPayload (EventSource).
- JIT performance improvements
- Improved performance of creating large numbers of TaskSchedulers when a debugger isn't attached.
- EventSourceIndex method is now public.
- Support for ToEventKeywords() method instead of working with keywords directly.
- Fixed NGen Task to respect battery saver setting.
- Fixed a bug where null paths would not throw ArgumentNullException.
- Added the case of Wrong machine code generated by RyuJIT on AVX2-capable CPU to the list of instructions that have this characteristic.
- Implemented flexibility in specifying Server GC resource consumption.

BCL:
- Opening a cryptographic key with CspParameters.ParentWindowHandle set to this.Handle will now correctly make any PIN or password prompt be modal to the current window
- Added ValueTuple types to support C# 7.0 and VB 15 tuples
- Added Name property to Regex.Group.
- Fixed InvalidPath exception when using FileIOPermissions with device syntax (?),
- ECDsa and ECDiffieHellman can now import and export key parameters (all OSes) as well as represent points over an expanded set of curves (Win10).
- Fixed an issue in SerialPort where unplugging the device during execution could cause a memory leak in the SerialStream class.
- Improved support of RSA decryption with hardware keys

Networking:
- ServicePointManager.SecurityProtocol will default to a new value: SystemDefault which allows applications to use the underlying operating system TLS version selection defaults. New SslStreamAuthenticateAs APIs allow applications to omit the SslProtocols parameter and use the system default. New HashAlgorithmType enum members.
- Added support for the TLS Alert Protocol
- Updated HttpListener to handle improvements to the token binding protocol.
- Fixed pointer offset calculation in HttpListener for token binding struct.

ASP.NET:
- Allows for extensibility of the cache providers that could allow them to operate on new services with less overhead from memory usage.
- Introduced a new config parameter 'timeoutUnit' for ActiveDirectoryMembershipProvider that can be used to indicate the 'clientSearchTimeout' and 'serverSearchTimeout' values. These should be interpreted as Days/Hours/Minutes/Seconds/Milliseconds. If not specified, the default is Minutes, as was the previous behavior.
- Customer will see a warning in the windows event log if they have specified to use unsecured password formats in their web application.
- Fixed assignment issue with max-age value for OutputCache.
- Fixed an issue with exception handling for custom membership provider scenario.

WPF:
- WPF now uses PrintDocumentPackageTarget instead of the deprecated XpsPrint API.
- Fixed crash in WPF when typing in text with specific language input
- The escape sequences have been unescaped in the URLs while converting from XAML to RTF.
- Fixed crash in DocumentView when receiving input from IMEs.
- Fixed ribbon crash when Alt + accelerator key is pressed to display the submenu.
- Previously, large amounts of connects and disconnects of tablet/stylus devices could result in WPF losing all touch support except for promoted mouse messages. This was due to a reference counting issue within WPF and its Windows side touch component (WISP). This change, along with the associated WISP change available in RS2, fixes this situation allowing large numbers of connects and disconnects.
- Conversion of BaselineOffset property has been added while converting from XAML to RTF and vice versa.
- Modernize touch stack
- Fixed crashes in Combobox
- Added support for alternative delimiter characters in markup.
- Fixed textbox focus issues
- Fixed out of memory issues with custom textbox.
- In some scenarios, shutting down input for a stylus/touch device (program shutdown or device disconnection) could result in a deadlock. This change alleviates that issue by fixing a timing problem with the WPF stylus/tablet initialization and shutdown code.
- In order to disable the WPF stylus/touch stack developers were previously using a private reflection mechanism. This provides a new mechanism in the form of an AppContext switch. Switch.System.Windows.Input.Stylus.DisableStylusAndTouchSupport set to true will fully disable the stylus/touch stack without requiring any private reflection or other workarounds.
- Inheritable properties propagate through a new link in the visual tree, including properties declared in a Style newly enabled by the link because a DynamicResource reference now resolves.
- ImageSourceConverter.ConvertFromString now throws the correct DirectoryNotFoundException instead of NullReferenceException if called with an invalid path (only on apps targeting .NET Framework 4.7 and above)
- Fixed IOException crashes arising from Cursor.LoadFromStream, that could happen on application start.
- Fixed a deadlock arising from re-entrant COM requests while waiting for the lock protecting WPF's weak-event component.
- Scroll tracing now supports scenarios involving multiple instances of an ItemsControl with the same name, that enter and leave the visual tree dynamically.
- Some ItemsControls allow null to appear in the ItemsSource. If so, the automation for the control should allow null as well. An app that works in a normal environment should not crash in when automation is present.
- Fixed an ArgumentException arising from bindings on a non-Visual element declared in a DataGrid cell template.
- Improved Grid algorithm usages to allocate space to columns declared with *-width. For details refer to Application compatibility changes.
- Fixed crash arising from displaying certain sequences of Unicode characters deemed (by the font and by DWrite) to have negative advance width.
- Fixed a crash arising when running two instances of a process that creates multiple large packages when using System.IO.Packaging.
- When an exception interrupts a PropertyChanged or CollectionChanged notification raised on a worker thread, other such notifications continue to be processed normally.
- Fixed D3DImage memory leak.
- Fixed crashes in DataGrid with column virtualization enabled scenario.
- Improved reliability of anchored scroll scenarios.
- Support for Async and AddJob scenarios in printing.
- The content of the selected item in a TabControl is visible to UI Automation, even after changing IsEnabled (or other properties) on the TabItems.

WCF:
- Fixed a bug in SocketConnection.Read which caused the operation to hang when mixing synchronous and asynchronous calls.
- Support for CNG certificates. For details refer to Application compatibility changes.
- Support for DataContractJsonSerializer to follow ECMAScript 6 when serializing control character.
- Fixed process crash in concurrent Dictionary scenario
- Fixed a race condition on the cleanup path of WCF Tracing that caused an ObjectDisposedException.
- Enabled WCF message security configuration to use TLS1.1 or TLS1.2. For details refer to Application compatibility changes.
- Fixed a bug in OperationContext.Current which caused it to return null when called inside an OperationContextScope
- Ensure no deadlock occurs when two threads try to abort the channel.

Workflow:
- Support for propagating an activity exception as-is instead of throwing a Null Reference Exception. For details refer to Application compatibility changes.
- Previously when trying to use Visual Studio to debug XAML-based workflows on a machine with FIPS enabled, one would encounter a NullReferenceException. This has been resolved. However, in order to take advantage of this change, you will need to add the following to the App.Config file for the workflow application:
- For details refer to Application compatibility changes.
- SqlWorkflowInstanceStore database now defines Primary Key columns, allowing transactional replication.

Windows Forms:
- Fixed dialog layout for High DPI scenarios
- Enabled ClickOnce signing scenarios where certificate is identified by a cryptographic provider and private key container names.
- Docked ListBox controls will now revert to their correct size in the designer when the Dock property is changed to DockStyle.None in the property browser.
- Fixed properly scaling across dialog control elements, including control padding and sizes in High DPI scenarios.
- Fixed text clipping in localized versions of .NET SDK tool MageUI.exe.
- Fixed IndexOutOfRangeException.
- Fixed clipped buttons in WinRes.exe .Net SDK tool
- Fixed crashes in Windows Forms Designer that happened when the Windows theme was changed.
- Fixed an issue in the Windows Forms designer where under some circumstances selecting a ContextMenuStrip causes Visual Studio to crash.
- Improved reliability of ToolTip control.
- Fixed reliability issue with ShowPropertyBrowser and Controls
- Changed the background color of property grid lines to provide an 8:1 contrast ratio for high contrast themes.
- Improved reliability of the Windows Forms DataGrid control.
- Fixed control height scaling issues in DPI mode
- Fixed toolstrip scaling issues in DPI mode
- Fixed case-insensitivity issues with command line arguments in mage.exe .NET SDK tool.
- High DPI support for winforms applications via app.config file.
- Fixed for the proper placement of anchored controls.
- Fixed control text truncations issue in a Visual Studio dialog.
- Enable per-monitor scaling in DPI mode

SQL:
- Fixed TransparentNetworkIPResolution (TNIR) Connectivity issues.
- SQL Client now uses TCP as the default protocol for connections to Azure SQL Database. Previously, SQL Client tried every protocol including viz, Shared Memory, TCP, and Named Pipes to establish a connection to Azure SQL Database, which only supports TCP connections.

ClickOnce:
- Fixed store corruption in ClickOnce application.
- Added the ability to sign a manifest file via a Hardware-Security Module (HSM) to Mage.exe and MageUI.exe