Visual Studio 2019 version 16.11 Release Notes
This is not the latest version of Visual Studio. To download the latest release, please visit the Visual Studio site.
Click a button to download the latest version of Visual Studio 2019. For instructions on installing and updating Visual Studio 2019, see the Update Visual Studio 2019 to the most recent release. Also, see instructions on how to install offline.
What’s New in Visual Studio 2019 version 16.11
Support Timeframe
Visual Studio 2019 version 16.11 is the fifth and final supported servicing baseline for Visual Studio 2019. Enterprise and Professional customers needing to adopt a long term stable and secure development environment are encouraged to standardize on this version. As explained in more detail in our lifecycle and support policy, version 16.11 will be supported with fixes and security updates through April 2029, which is the remainder of the Visual Studio 2019 product lifecycle.
In addition, now that version 16.11 is available, version 16.9, which was the last servicing baseline, will be supported for an additional 12 months and will go out of support in October 2022. Note as well that versions 16.10 is no longer under support either. These intermediary releases received servicing fixes only until the next minor update released.
You can acquire the latest most secure version of Visual Studio 2019 version 16.11 by clicking one of the buttons above, by visiting the Visual Studio site, or by going to the downloads section of my.visualstudio.com. You can get updates from the Microsoft Update catalog. For more information about Visual Studio supported baselines, please review the support policy for Visual Studio 2019.
Visual Studio 2019 version 16.11 Releases
- November 14, 2023 — Visual Studio 2019 version 16.11.32
- October 12, 2023 — Visual Studio 2019 version 16.11.31
- September 12, 2023 — Visual Studio 2019 version 16.11.30
- August 8, 2023 — Visual Studio 2019 version 16.11.29
- July 25, 2023 — Visual Studio 2019 version 16.11.28
- June 13, 2023 — Visual Studio 2019 version 16.11.27
- April 11, 2023 — Visual Studio 2019 version 16.11.26
- March 14, 2023 — Visual Studio 2019 version 16.11.25
- February 14, 2023 — Visual Studio 2019 version 16.11.24
- January 10, 2023 — Visual Studio 2019 version 16.11.23
- December 13, 2022 — Visual Studio 2019 version 16.11.22
- November 8, 2022 — Visual Studio 2019 version 16.11.21
- October 11, 2022 — Visual Studio 2019 version 16.11.20
- September 13, 2022 — Visual Studio 2019 version 16.11.19
- August 9, 2022 — Visual Studio 2019 version 16.11.18
- July 12, 2022 — Visual Studio 2019 version 16.11.17
- June 14, 2022 — Visual Studio 2019 version 16.11.16
- May 17, 2022 — Visual Studio 2019 version 16.11.15
- May 10, 2022 — Visual Studio 2019 version 16.11.14
- April 19, 2022 — Visual Studio 2019 version 16.11.13
- April 12, 2022 — Visual Studio 2019 version 16.11.12
- March 8, 2022 — Visual Studio 2019 version 16.11.11
- February 8, 2022 — Visual Studio 2019 version 16.11.10
- January 11, 2022 — Visual Studio 2019 version 16.11.9
- December 14, 2021 — Visual Studio 2019 version 16.11.8
- November 16, 2021 — Visual Studio 2019 version 16.11.7
- November 09, 2021 — Visual Studio 2019 version 16.11.6
- October 12, 2021 — Visual Studio 2019 version 16.11.5
- October 05, 2021 — Visual Studio 2019 version 16.11.4
- September 14, 2021 — Visual Studio 2019 version 16.11.3
- August 25, 2021 — Visual Studio 2019 version 16.11.2
- August 16, 2021 — Visual Studio 2019 version 16.11.1
- August 10, 2021 — Visual Studio 2019 version 16.11.0
Visual Studio 2019 Archived Release Notes
- Visual Studio 2019 version 16.10 Release Notes
- Visual Studio 2019 version 16.9 Release Notes
- Visual Studio 2019 version 16.8 Release Notes
- Visual Studio 2019 version 16.7 Release Notes
- Visual Studio 2019 version 16.6 Release Notes
- Visual Studio 2019 version 16.5 Release Notes
- Visual Studio 2019 version 16.4 Release Notes
- Visual Studio 2019 version 16.3 Release Notes
- Visual Studio 2019 version 16.2 Release Notes
- Visual Studio 2019 version 16.1 Release Notes
- Visual Studio 2019 version 16.0 Release Notes
Visual Studio 2019 Blog
The Visual Studio 2019 Blog is the official source of product insight from the Visual Studio Engineering Team. You can find in-depth information about the Visual Studio 2019 releases in the following posts:
- Visual Studio 2019 v16.11 is Available Now!
- Visual Studio 2019 v16.10 and v16.11 Preview 1 are Available Today!
- Enhanced Productivity with Git in Visual Studio
- Available Today! Visual Studio 2019 v16.9 and v16.10 Preview 1
- Visual Studio 2019 v16.9 Preview 3 is Available Today!
- Visual Studio 2019 v16.9 Preview 2 and New Year Wishes Coming to You!
- Visual Studio 2019 v16.8 and v16.9 Preview Available Today
- New Features in Visual Studio 2019 v16.8 Preview 3.1
- Visual Studio 2019 v16.8 Preview 2 Releases New Features Today!
- Visual Studio 2019 v16.7 and v16.8 Preview 1 Release Today!
- Visual Studio 2019 v16.7 Preview 2 Available Today!
- Exciting new updates to the Git experience in Visual Studio
- Releasing Today! Visual Studio 2019 v16.6 & v16.7 Preview 1
- Visual Studio 2019 version 16.6 Preview 2 Releases New Features Your Way
- Visual Studio 2019 version 16.5 is now available!
- ‘Tis the Season for Visual Studio 2019 v16.4 Release
- Visual Studio 2019 v16.4 Preview 2, Fall Sports, and Pumpkin Spice
- .NET Core Support and More in Visual Studio 2019 version 16.3 — Update Now!
- Visual Studio 2019 version 16.3 Preview 2 and Visual Studio 2019 for Mac version 8.3 Preview 2 Released!
- Visual Studio 2019 version 16.2 and 16.3 Preview 1 now available
- Visual Studio 2019 version 16.2 Preview 2
- Visual Studio 2019 version 16.1 and Preview 16.2 Preview
- Visual Studio 2019: Code faster. Work smarter. Create the future.
Visual Studio 2019 version 16.11.32
released November November 14th, 2023
Issues Addressed in this release
Developer Community
Security Advisories Addressed
- CVE-2023-36042A denial of service vulnerability exists in Visual Studio where a malformed decorated name can result in an infinite loop.
Visual Studio 2019 version 16.11.31
released October 10th, 2023
Issues Addressed in this release
- Updated version of Git used by Visual Studio to v 2.41.0.3.
Visual Studio 2019 version 16.11.30
released September 12th, 2023
Issues Addressed in this release
Security Advisories Addressed
- CVE-2023-36796This security update addresses a vulnerability in DiaSymReader.dll when reading a corrupted PDB file which can lead to Remote Code Execution.
- CVE-2023-36794This security update addresses a vulnerability in DiaSymReader.dll when reading a corrupted PDB file which can lead to Remote Code Execution.
- CVE-2023-36793This security update addresses a vulnerability in DiaSymReader.dll when reading a corrupted PDB file which can lead to Remote Code Execution.
- CVE-2023-36792This security update addresses a vulnerability in DiaSymReader.dll when reading a corrupted PDB file which can lead to Remote Code Execution.
- CVE-2023-36759This security update removes pgodriver.sys, where reading a malicious file can lead to Elevation of Privilege
Visual Studio 2019 version 16.11.29
released August 8th, 2023
Issues Addressed in this release
- Addressed an issue where VSWhere’s all switch would not return instances in an un-launchable state.
Security Advisories Addressed
- CVE-2023-36897 Visual Studio 2010 Tools for Office Runtime Spoofing Vulnerability This security update addresses a vulnerability where unauthenticated remote attacker can sign VSTO Add-ins deployments without a valid code signing certificate.
Visual Studio 2019 version 16.11.28
released July 25th, 2023
Issues Addressed in this release
Visual Studio 2019 version 16.11.27
released June 13th, 2023
Issues Addressed in this release
- ActiveX Control Variable wizard will generate ActiveX properties as well as functions, restoring the functionality from Visual Studio 2015.
- As part of this update, to address CVE-2023-27909, CVE-2023-27910, and CVE-2023-27911, we are removing .fbx and .dae support. This is a third-party x86 component that is no longer supported by the author. Affected users should use the fbx editor.
Developer Community
- JSON Schemas don’t work with localized Visual Studio
- JumpThreading Fix for JT value numbering invalidation
Security Advisories Addressed
- CVE-2023-24897 Visual Studio Remote Code Execution Vulnerability This security update addresses a vulnerability in the MSDIA SDK where corrupted PDBs can cause heap overflow, leading to a crash or remote code execution.
- CVE-2023-25652 Visual Studio Remote Code Execution Vulnerability This security update addresses a vulnerability where specially crafted input to git apply –reject can lead to controlled content writes at arbitrary locations.
- CVE-2023-25815 Visual Studio Spoofing Vulnerability This security update addresses a vulnerability where Github localization messages refer to a hard-coded path instead of respecting the runtime prefix that leads to out-of-bound memory writes and crashes.
- CVE-2023-29007 Visual Studio Remote Code Execution Vulnerability This security update addresses a vulnerability in which a configuration file containing a logic error results in arbitrary configuration injection.
- CVE-2023-29011 Visual Studio Remote Code Execution Vulnerability This security update addresses a vulnerability in which the Git for Windows executable responsible for implementing a SOCKS5 proxy is susceptible to picking up an untrusted configuration on multi-user machines.
- CVE-2023-29012 Visual Studio Remote Code Execution Vulnerability This security update addresses a vulnerability in which the Git for Windows Git CMD program incorrectly searches for a program upon startup, leading to silent arbitrary code execution.
- CVE-2023-27909 Visual Studio Remote Code Execution Vulnerability This security update addresses an Out-Of-Bounds Write Vulnerability in Autodesk® FBX® SDK where version 2020 or prior may lead to code execution through maliciously crafted FBX files or information disclosure.
- CVE-2023-27910 Visual Studio Information Disclosure Vulnerability This security update addresses a vulnerability where a user may be tricked into opening a malicious FBX file that may exploit a stack buffer overflow vulnerability in Autodesk® FBX® SDK 2020 or prior which may lead to remote code execution.
- CVE-2023-27911 Visual Studio Remote Code Execution Vulnerability This security update addresses a vulnerability where a user may be tricked into opening a malicious FBX file that may exploit a heap buffer overflow vulnerability in Autodesk® FBX® SDK 2020 or prior which may lead to remote code execution.
- CVE-2023-33139 Visual Studio Information Disclosure Vulnerability This security update addresses a OOB vulnerability where the obj file parser in Visual Studios leads to information disclosure.
Visual Studio 2019 version 16.11.26
released April 11th, 2023
Issues Addressed in this release
- Fixed an issue in IIS Express that could cause a crash when updating telemetry data.
- Fixed a crash when invalid input is sent to the driver used during PGO training for kernel mode drivers.
Developer Community
Security Advisories Addressed
- CVE-2023-28296 Visual Studio Remote Code Execution Vulnerability
- CVE-2023-28299 Visual Studio Spoofing Vulnerability
- CVE-2023-28262 Visual Studio Elevation of Privilege Vulnerability
- CVE-2023-28263 Visual Studio Information Disclosure Vulnerability
Visual Studio 2019 version 16.11.25
released March 14th, 2023
Issues Addressed in this release
- Git 2.39 has renamed the value for credential.helper from «manager-core» to «manager». See https://aka.ms/gcm/rename for more information.
- Updates to mingit and Git for Windows package to v2.39.2, which addresses CVE-2023-22490
Security Advisories Addressed
- CVE-2023-22490 Mingit Remote Code Execution Vulnerability
- CVE-2023-22743 Git for Windows Installer Elevation of Privilege Vulnerability
- CVE-2023-23618 Git for Windows Remote Code Execution Vulnerability
- CVE-2023-23946 Mingit Remote Code Execution Vulnerability
Visual Studio 2019 version 16.11.24
released February 14th, 2023
Issues Addressed in this release
- Updated CPython interpreter to version 3.9.13.
- Updated mingit and Git for Windows package to v2.39.1.1, which addresses CVE-2022-41903
Security Advisories Addressed
- CVE-2023-21566 Visual Studio Installer Elevation of Privilege Vulnerability
- CVE-2023-21567 Visual Studio Denial of Service Vulnerability
- CVE-2023-21808 .NET and Visual Studio Remote Code Execution Vulnerability
- CVE-2023-21815 Visual Studio Remote Code Execution Vulnerability
- CVE-2023-23381 Visual Studio Code Remote Code Execution Vulnerability
- CVE-2022-23521 gitattributes parsing integer overflow
- CVE-2022-41903 Heap overflow in git archive , git log —format leading to RCE
- CVE-2022-41953 Git GUI Clone Remote Code Execution Vulnerability
Visual Studio 2019 version 16.11.23
released January 10th, 2023
Security Advisories Addressed
- CVE-2023-21538 .NET Denial of Service Vulnerability A denial of service vulnerability exists in .NET 6.0 where a malicious client could cause a stack overflow which may result in a denial of service attack when an attacker sends an invalid request to an exposed endpoint.
Visual Studio 2019 version 16.11.22
released December 13th, 2022
Security Advisories Addressed
- CVE-2022-41089 Remote Code Execution A remote code execution vulnerability exists in .NET Core 3.1, .NET 6.0, and .NET 7.0, where a malicious actor could cause a user to run arbitrary code as a result of parsing maliciously crafted xps files.
Visual Studio 2019 version 16.11.21
released November 8th, 2022
Issues Addressed in this release
- Added conditional guards to fix incorrect references in AMD64 optimizations for boost, stl_interfaces.
Security Advisories Addressed
- CVE-2022-41119 Remote Code Execution Heap Overflow Vulnerbaility in Visual Studio
- CVE-2022-39253 Information Disclosure Local clone optimization dereferences symbolic links by default
Visual Studio 2019 version 16.11.20
released October 11, 2022
Issues Addressed in this release
- Made Resource View appear more reliably for projects that are reloaded
- Administrators will be able to update the VS Installer on an offline client machine from a layout without updating VS.
Security Advisories Addressed
- CVE-2022-41032 .NET Elevation of Privilege Vulnerability A vulnerability exists in .NET 7.0.0-rc.1, .NET 6.0, .NET Core 3.1, and NuGet clients (NuGet.exe, NuGet.Commands, NuGet.CommandLine, NuGet.Protocol) where a malicious actor could cause a user to execute arbitrary code.
Visual Studio 2019 version 16.11.19
released Septemenber 13, 2022
Issues Addressed in this release
- Made Resource View appear more reliably for projects that are reloaded
Security Advisories Addressed
- CVE-2022-38013 .NET Denial of Service VulnerabilityA denial of service vulnerability exists in ASP.NET Core 3.1 and .NET 6.0 where a malicious client could cause a stack overflow which may result in a denial of service attack when an attacker sends a customized payload that is parsed during model binding.
Visual Studio 2019 version 16.11.18
released August 9th, 2022
From Developer Community
- Coded UI in VS2019 — VS crashing when opening and/or expanding UI maps
- Launching multiple startup projects fails with the error message
Security Advisories Addressed
- CVE-2022-34716 .NET Information Disclosure Vulnerability An information disclosure vulnerability exists in .NET 6.0 and .NET Core 3.1 that could lead to unauthorized access of privileged information.
- CVE-2022-31012 Remote Code Execution Git for Windows’ installer can be tricked into executing an untrusted binary
- CVE-2022-29187 Elevation of Privilege Malicious users can create a .git directory in a folder that is owned by a super-user
- CVE-2022-35777 Remote Code Execution Visual Studio 2022 Preview Fbx File parser Heap overflow Vulnerability
- CVE-2022-35825 Remote Code Execution Visual Studio 2022 Preview Fbx File parser OOBW Vulnerability
- CVE-2022-35826 Remote Code Execution Visual Studio 2022 Preview Fbx File parser Heap overflow Vulnerability
- CVE-2022-35827 Remote Code Execution Visual Studio 2022 Preview Fbx File parser Heap OOBW Vulnerability
Visual Studio 2019 version 16.11.17
released July 12, 2022
Issues Addressed in this release
- Updated LibraryManager to accommodate changes to cdnjs API
From Developer Community
Visual Studio 2019 version 16.11.16
released June 14, 2022
From Developer Community
Security Advisories Addressed
- CVE-2022-30184 .NET Information Disclosure Vulnerability A vulnerability exists in .NET 6.0 and .NET Core 3.1 within NuGet where a credential leak can occur.
- CVE-2022-24513 Elevation of privilege vulnerability A potential elevation of privilege vulnerability exists when the Microsoft Visual Studio updater service improperly parses local configuration data.
Visual Studio 2019 version 16.11.15
released May 17, 2022
Issues Addressed in this release
- Fixed connections for Azure SQL Managed Instance in SQL Server Data Tools, including Schema Compare and SQL Server explorer. Note: Support for Azure Arc enabled Managed Instance is pending a future release (In the Community)
From Developer Community
Visual Studio 2019 version 16.11.14
released May 10, 2022
Issues Addressed in this release
- Added the implementation for the remaining C++20 defect reports (a.k.a. backports). All C++20 features are now available under the /std:c++20 switch. For more information about the implemented backports, please see C++20 Defect Reports project on microsoft/STL GitHub repository and this blogpost
- Updated Git for Windows version consumed by Visual Studio and installable optional component to 2.36.0.1
- Fixed an issue with git integration, where if pulling/synchronizing branches that have diverged, output window would not show a localized hint on how to resolve it.
From Developer Community
Security Advisories Addressed
CVE-2022-29117 .NET Denial of Service Vulnerability A vulnerability exists in .NET 6.0, .NET 5.0 and .NET Core 3.1 where a malicious client can manipulate cookies and cause a Denial of Service.
CVE-2022-23267 .NET Core Denial of Service Vulnerability A vulnerability exists in .NET 6.0, .NET 5.0 and .NET Core 3.1 where a malicious client can cause a Denial of Service via excess memory allocations through HttpClient.
CVE-2022-29145 .NET Denial of Service Vulnerability A vulnerability exists in .NET 6.0, .NET 5.0 and .NET Core 3.1 where a malicious client can can cause a Denial of Service when HTML forms are parsed.
CVE-2022-24513 Elevation of privilege vulnerability A potential elevation of privilege vulnerability exists when the Microsoft Visual Studio updater service improperly parses local configuration data.
Visual Studio 2019 version 16.11.13
released April 19, 2022
Issues Addressed in this release
- Fixed vctip.exe regression from 16.11.12
- Fixed a bug that prevented some applications built with Address Sanitizer (ASAN) to load in Windows 11.
- Fixed another ASAN issue where multi-threaded applications with heap contention may experience deadlocks, false «wild pointer freed» reports, or a deadlock during process exit.
Visual Studio 2019 version 16.11.12
released April 12, 2022
Issues Addressed in this release
- Fixed an issue that would cause some animations for test execution to run in the background even when the associated test executions were complete. This causes slowdowns that were especially noticeable on high refresh rate monitors. The fix should improve the experience of using VS on high refresh rate monitors.
- Removed an unnecessary warning when connecting to a LiveShare server that didn’t offer certain functionality used by the client.
From Developer Community
- Optimized Qt applications crash on startup on ARM64
- I get an error Live Share: The user of the output channel works with limited functionality due to the absence of a dependent service.
- Find in IVsTextImage does not work in VisualStudio 2019
Security Advisories Addressed
CVE-2022-24765 Elevation of privilege vulnerability A potential elevation of privilege vulnerability exists in Git for Windows, in which Git operations could run outside a repository while seraching for a Git directory. Git for Windows is now updated to version 2.35.2.1.
CVE-2022-24767 DLL hijacking vulnerability A potential DLL hijacking vulnerability exists in Git for Windows installer, when running the uninstaller under the SYSTEM user account. Git for Windows is now updated to version 2.35.2.1.
CVE-2022-24513 Elevation of privilege vulnerability A potential elevation of privilege vulnerability exists when the Microsoft Visual Studio updater service improperly parses local configuration data.
Visual Studio 2019 version 16.11.11
released March 8, 2022
Issues Addressed in this release
- Fixed an issue with remote debugging, especially affecting Azure App Service, where authentication failures would sometimes fail with ‘The connection with the remote endpoint was terminated’ and Visual Studio would not prompt for credentials.
- Improved performance on high refresh rate monitors.
From Developer Community
- Internal compiler error in fold expression with += operator on 16.11
- consteval constructor and C7595
- cl does not make special member functions implicitly constexpr
- Can’t have freestanding requires expressions
- There are no configured extension galleries in VS 2019
- Sql Server object explorer does not show indexes
- SQL project does not build if it has File storage tables
Security Advisories Addressed
CVE-2020-8927 Vulnerability A Remote code Execution vulnerability exists in .NET 5.0 and .NET Core 3.1 where a buffer overflow exists in the Brotli library versions prior to 1.0.8.
CVE-2022-24464 Vulnerability A denial of service vulnerability exists in .NET 6.0, .NET 5.0, and .NET CORE 3.1 when parsing certain types of http form requests.
CVE-2022-24512 Vulnerability A Remote Code Execution vulnerability exists in .NET 6.0, .NET 5.0, and .NET Core 3.1 where a stack buffer overrun occurs in .NET Double Parse routine.
CVE-2021-3711 OpenSSL Buffer Overflow vulnerability A potential buffer overflow vulnerability exists in OpenSSL, which is consumed by Git for Windows. Git for Windows is now updated to version 2.35.1.2, which addresses this issue.
Visual Studio 2019 version 16.11.10
released February 8, 2022
Issues Addressed in this Release
- Fixed an issue that has caused sporadic C++ linker crashes.
- Silent bad codegen issue with x64.
- An issue that prevented files from being deleted while they were being processed by background C++ static analysis.
- Resolved an issue in C++ ATL CString equality operator under C++20 mode.
- Fixed an issue that could have prevented an initializer from running in a load test scenario.
From Developer Community
- Missing comparison operators between LPCWSTR and CString in VS 16.11.8
- x64 optimizer bug VC++2019 16.11.4
Security Advisories Addressed
CVE-2022-21986 Vulnerability A Denial of Service vulnerability exists in .NET 5.0 and .NET 6.0 when the Kestrel web server processes certain HTTP/2 and HTTP/3 requests.
Visual Studio 2019 version 16.11.9
released January 11, 2022
Issues Addressed in this Release
- Fixed an issue with being unable to debug applications multiple times when Windows Terminal is used as the default terminal.
- Setup fix to unblock customers on restricted configurations
- Fixed an issue that prevented a client from being able to update a more current bootstrapper. Once the client is using the bootstrapper and installer that shipped January 2022 or later, all updates using subsequent bootstrappers should work for the duration of the product lifecycle.
- Addressed occasional instance where VSInstr would not exit when instrumenting a binary with volatile metadata causing Instrumentation Profiling to fail.
- Fixed an issue were compiling C++ code with very large functions using /Og or #pragma optimize(«g») can generate invalid code (bad codegen)
- Fixed a bug in C++ Concurrency::parallel_for_each that was crashing the calling process due to integer overflow
From Developer Community
Visual Studio 2019 version 16.11.8
released December 14, 2021
Issues Addressed in this Release
Bidirectional text control character rendering
To prevent a potentially malicious exploit that allows code to be misrepresented, the Visual Studio editor will no longer allow bidirectional text control characters to manipulate the order of characters on the editing surface. A new option will cause these bidirectional text control characters to be shown with placeholders. The bidirectional text control characters will still be present in the code as this behavior only impacts what is rendered in the code editor.
This functionality is controlled in Tools\Options. Under the Text Editor\General page there is an option for “Show bidirectional text control characters”, which will be checked by default. When checked, all bidirectional text control characters will be rendered as placeholders. Unchecking the option will revert to the previous behavior where these characters are not rendered.
A Unicode character is considered a bidirectional text control character if it falls into any of the following ranges: U+061c, U+200e-U+200f, U+202a-U+202e, U+2066-U+2069.
- Corrected an issue in C++ compiler where a templated destructor involved in a class hierarchy with data member initializers may be instantiated too early, potentially leading to incorrect diagnostics about uses of undefined types or other errors.
- Fixed an issue in ATL’s CString comparisions under C++20 and C++Latest language modes.
- Added Python 3.9.7 to Python workload. Removed Python 3.7.8 due to a security vulnerability.
From Developer Community
- Referenced DacPac file causes deployment to process refactorlog even if IncludeCompositeObjects is false
- CString with spaceship operator returns incorrect result (affects std::map, std::set, etc.)
- Visual Studio sqldb project unable to create primary key with (statistics_incremental = on) on table
- Template inheritance sometimes forces improper instantiation.
- Visual Studio 2019 freezes when comparing aspx/aspx.vb files
- Microsoft.Azure.Compute.Emulator.EXE will not be updated
Security Advisories Addressed
CVE-2021-43877 .NET Vulnerability An elevation of privilege vulnerability exists in ANCM which could allow elevation of privilege when .NET core, .NET 5 and .NET 6 applications are hosted within IIS.
CVE-2021-42574 Bidirectional Text Vulnerability Bidirectional text control characters can be used to cause code to be rendered in the editor differently from what is contained on disk.
Visual Studio 2019 version 16.11.7
released November 16, 2021
Issues Addressed in this Release
- Adds Xcode 13.1 support.
- The bootstrappers now respect the —useLatestInstaller parameter, which causes the latest installer to be integrated into layout. This latest installer, which ships with Visual Studio 2022, enables the scenario where enterprises want to transition their clients from one layout location to another. For more information, refer to the [Visual Studio Administrators Guide](* The bootstrappers now respect the —useLatestInstaller parameter, which causes the latest installer to be integrated into layout. This latest installer, which ships with Visual Studio 2022, enables the scenario where enterprises want to transition their clients from one layout location to another. For more information, refer to the Visual Studio Administrators Guide.).
- Fixed an issue wehre WAP projects would not appear in the startup projects tool bar combo box.
- Fixed issue with Windows Application Projects (WAP) where, in certain circumstances, final application bundle contains wrong binaries.
- Prevent opening «Team Explorer > Manage Connections» or «Git Changes» windows from causing TFVC solutions to be unloaded.
From Developer Community
- Starting Version 16.8.0 up to 16.9.1 becomes unresponsive and restarts frequently
- IntelliSense error with std::source_location::current()
- Visual Studio 2019 version 16.10 — UWP — Xamarin: Runtime exception ‘Could not load file or assembly’ after updating to Visual Studio 16.10
- Visual Studio 2019 version 16.11.3 — Packaging UWP application fails
- 16.11.6: Package ‘AndroidImage_x86_API125_Private,version=10.0.0.3’ failed to install
Visual Studio 2019 version 16.11.6
released November 09, 2021
Issues Addressed in this Release
- Address occasional instance where VSInstr would not exit when instrumenting a binary with volatile metadata.
- Fix for «value of range» errors when using C++ IntelliSense.
- Under certain conditions with an international locale selected fsi would crash when run from Visual Studio. This release fixes the issue and fsi should now operate correctly.
- Fixes an issue that could cause Visual Studio to build, debug, or run tests against binaries that weren’t brought up to date with your latest code changes.
- Fixes a thread pool leak during Cloud Services local debugging.
- Add support for Android 12 APIs.
- Fixes a potential deadlock when closing Performance Profiler or Diagnostic Tools on Windows Server machines.
- Fixes a delay in VS startup.
Security Advisories Addressed
CVE-2021-42319 Elevation of Privilege Vulnerability An Elevation of Privilege vulnerability exists in the WMI Provider that is included in the Visual Studio installer.
CVE-2021-42277 Diagnostics Hub Standard Collector Service Elevation of Privilege Vulnerability An elevation of privilege vulnerability exists when the Diagnostics Hub Standard Collector incorrectly handles file operations.
Visual Studio 2019 version 16.11.5
released October 12, 2021
Issues Addressed in this Release
Security Advisories Addressed
CVE-2020-1971 OpenSSL Denial of Service Vulnerability
A potential denial of service vulnerability exists in OpenSSL library, which is consumed by Git.
CVE-2021-3449 OpenSSL Denial of Service Vulnerability
A potential denial of service vulnerability exists in OpenSSL library, which is consumed by Git.
CVE-2021-3450 OpenSSL Denial of Service Vulnerability
A potential flag bypass exists in OpenSSL library, which is consumed by Git.
CVE-2021-41355 .NET Disclosure Vulnerability
An Information Disclosure vulnerability exists in .NET where System.DirectoryServices.Protocols.LdapConnection sends credentials in plain text on Linux.
Visual Studio 2019 version 16.11.4
released October 05, 2021
Issues Addressed in this Release
- Windows 11 SDK support.
- Add AMD64 math functions to ARM64X CRT.
- Updates to the ARM64 and ARM64EC interfaces between the binary and the POGO instrumentation runtime.
- Fixed several problems with IntelliSense responsiveness and correctness affecting C++20 concepts, ranges, and abbreviated function templates.
- Fixed a false positive in local lifetime checks.
- Corrected an issue where arrays allocated with a constant of size > 32bits could allocate less memory than requested.
- Ensures that ATL string initialization occurs during static variable initialization, in the default AppDomain.
- Fixed a bug in C++ Concurrency::parallel_for_each that was crashing the calling process due to integer overflow.
- Fixed a bug in the STL’s iterator debugging machinery that could cause crashes in multithreaded programs using STL containers.
- We have fixed a fatal internal compiler error caused by unnamed structs whose fields are referenced from SAL annotations.
- Fixes a rare crash when analyzing templated code that uses __uuidof.
- Fixed an issue that caused C++ static analysis results to sometimes not display correctly in the FixIt action.
- Fixed opening .uitest extension files in Coded UI project
- Fire component change events for non-component objects also in WinForms .NET designer
- Fix for crash on deleting ContextMenuStrip control in Windows Forms .NET designer.
- Guard against crashes when the Windows Forms designer reloads when dragging.
- Fix for intermittent VS crash while interacting with WinForms .NET designer during solution or project rebuild.
- Fixed a bug causing .NET 5 projects to be reported as out of date when they should have been up to date, causing slower builds.
- Automatically disable asset-indexing for large scale Unity projects.
- Adds Xcode 13.0 support.
- This release fixes an issue with deploying certain Windows Application Packaging projects where deployment is unnecessarily copying unmodified files.
From Developer Community
- Comparing CComPtr with CComPtr results in an error
- Structured binding in lambda in lambda cause a invalid compile error
- Bad codegen with operator new
- WinARM64 Build Failures with MFC/ATL Link issues after migrating from VS 16.8.6 to VS 16.9.5
- The unity codelens provider still requires a huge amount of memory and could be OOMed in large scale Unity project in version 16.11.
- Error C3493 with /std:c++latest using structured binding in Lambda
Visual Studio 2019 version 16.11.3
released September 14, 2021
Issues Addressed in this Release
- Fixed missing «Remote Device» debug target for Xamarin iOS projects.
- Fixed a bug that caused a start menu shortcut link to disappear. The bug only happened when updating multiple instances of different product SKUs on the same machine.
From Developer Community
- Visual Studio UI unresponsive when too much build log output during build (eg: diagnostic verbosity)
- Live Unit Testing Crashes on start up
- «Remote device» not listed in devices
- Designer crashes for 32-bit apps whenever you scroll wheel over it
Security Advisories Addressed
CVE-2021-26434 Visual Studio Incorrect Permission Assignment Privilege Escalation Vulnerability
A permission assignment vulnerability exists in Visual Studio after installing the Game development with C++ and selecting the Unreal Engine Installer workload. The system is vulnerable to LPE during the installation it creates a directory with write access to all users.
Visual Studio 2019 version 16.11.2
released August 25, 2021
Issues Addressed in this Release
- Fixed an issue where CMake cache generation would fail, which blocked IntelliSense, build, and debug.
- Fixed warning «Evaluating the function ‘System.Diagnostics.TraceInternal.Listeners.get’ timed out and needed to be aborted in an unsafe way» when starting debugging on some .NET and dotnet Core application.
From Developer Community
- CMake cache generation «hangs» after upgrade from vs2019 16.11.0 to 16.11.1
- Could not find any resources appropriate for the specified culture or the neutral culture. Make sure «Microsoft.VisualStudio.Data.Providers.SqlServer
- Build Selection stopped working VS 16.11
Visual Studio 2019 version 16.11.1
released August 16, 2021
Issues Addressed in this Release
- Fixes an issue installing the Microsoft.VisualStudio.ScriptedHost.Registry package during Visual Studio installation, which would cause the entire installation to fail.
- Unblocked Adding a new SSH Connection through Tools Options
From Developer Community
Visual Studio 2019 version 16.11.0
released August 10, 2021
Summary of What’s New in this Release of Visual Studio 2019 version 16.11.0
Updated Help Menu
- Updated menu highlights Get Started material and helpful Tips/Tricks. It also provides access to Developer Community, Release Notes, the Visual Studio product Roadmap, and our Social Media pages.
- New My Subscription menu item allows developers to make the most out of their subscriptions through benefit awareness and additional information!
Git tooling
- Access additional actions from the overflow menu in the branch picker in Git Changes window and status bar.
- Hover over a branch name to see last commit details in a tooltip.
- Access additional actions in the repository picker overflow menu from the status bar.
- Hover over a repository name to see repository details such as local path and remote URL.
C++
- LLVM tools shipped with Visual Studio have been upgraded to LLVM 12. See the LLVM release notes for details.
- Clang-cl support was updated to LLVM 12.
Setup
- Fixed an issue that affected command line execution of the update command. If the update fails the first time, a subsequent issuing of the update command now causes the update to resume the prior operation where it left off.
- .NET Hot Reload User Experience for editing managed code at runtime.
Details of What’s New in this Release of Visual Studio 2019 version 16.11.0
.NET Hot Reload User Experience for editing managed code at runtime
In this release we are excited to make available the first release of the new Hot Reload user experience when editing code files for applications such as WPF, Windows Forms, ASP.NET Core, Console, etc. With Hot Reload you can now modify your apps managed source code while the application is running with no need to pause execution or use a breakpoint. Instead, simply make a supported change and use the new “apply code changes” button in the toolbar to apply them immediately.
In this update of Visual Studio this new experience is available when running your application under the debugger (F5) and is powered by the Edit and Continue (EnC) mechanism. Therefore, anywhere that EnC is supported you can now also use Hot Reload alongside any other debugger features. .NET Hot Reload will also work alongside XAML Hot Reload, making it possible to make both UI and code-behind changes in your desktop applications such as WPF or WinUI.
Both EnC and Hot Reload also share the same limitations, so be aware that not every type of edit is currently supported. The complete list of what is or is not supported can be found in our documentation.
To learn more about Hot Reload and our long-term vision you can also read more details in our blog post.
Top Issues Fixed in this Release
- MSVC C++ 14.29.16.10 SxS Toolset updated to match VS 2019 v16.10.4. MSVC Toolset Version for this update is 14.29.30040.0/19.29.30040.0.
- Update Azure Branding
- Fix an issue where a failure during CMake test discovery could cause cache generation to fail.
- Fixed an issue causing TPv0 tests using CSV or SQLCE as data sources to fail to execute with an ArgumentException.
- Fixed the «ApplicationVerificationFailed» build error with Hot Restart
- Fixed a failure to conduct fast up-to-date check on WAP projects which was causing those projects to be built (instead of being skipped), even when project is up-to-date and does not need modifications, further causing increased incremental build times in IDE.
- Fixed the «Xamarin.iOS does not support running or debugging the previous built version of your project» error.
- Fixed the «Unable to connect to Mac Server with Address» error when trying to distribute iOS applications
- «Modules for Standard Library (experimental)» was missing, but has been restored.
- Fixed an EDG assertion failure on nested co_yield.
- Fixed an issue causing Microsoft Azure Tools for Visual Studio to trigger other .dlls to load in the About Box.
- Fixed an accessibility issue causing High Contrast Account Settings to not show.
- Fixed a formatting issue when using @ .
- Fixed an accessibility issue with screen readers failing to announce collapsed code headers.
- Fixed the Luminosity contrast ratio for Country boundary Foreground/background color to be greater or equals to 3:1 so that visually impaired users can identify these controls.
- Fixed an accessibility issue where Visible name and accessible name are not similar for «Server» edit field, «Site name» edit field and «Target Runtime» combo box.
- Fixed a bug causing the screen reader to announce the Connecting status message information under Add SQL Server blade.
- Filter was missing from the completion list in VB projects.
- Fixed an issue causing Visual Studio to occasionally stop responding when loading Microsoft.Maui-net6.sln.
- Fixed an error when building IOS project or XF project that showed the warning «Xamarin.iOS.Common.targets».
- Fixed branch picker menu grouping.
- Fixed an issue causing the repository below the selected repository to open instead of the desired repository.
- Fixed a bug causing warnings for template functions to follow an incorrect ruleset.
- Fixed a bug causing the Microsoft account dropdown to get truncated when resizing from 125% to 150% or 175% to 200%.
- Fixed an accessibility bug where the narrator does not announce the label name.
- Made it easier for users to access the «convert color to resource» button.
- Made it easier for low vision users to view the focus on the «Select previous gradient stop» and «Select Next gradient stop» buttons.
- Corrected issues with screen reader users not getting the proper information about buttons.
- GitHub specific error messages were not always showing when pushing commits.
- Fixed an issue causing warnings when trying to connect to SharePoint to provision workflow debugging prerequisites.
- Fixed an issue causing network operations to not work with the Fork and the remote Fork branches in the Git repo window.
- Fixed a Database Project issue where dragging a file from solution explorer into an opened one is deleting the file from the file system
- Fixed an issue causing an exception in .cshtml and .razor files.
- Fixed a slow display of files and icons in the Visual Studio IDE and Solution Explorer.
- Fixed an error with Git messaging that reported ‘It is not allowed to run multiple bulk file operations at a time.’
- Improved ease of accessibility when accessing the controls for any path of the selected Profile.
- Corrected an ‘Error List’ warning when publishing a Cloud Service project with a ‘Single Page Application’ template.
- Fixes an issue where attempting to close the quick start window can cause Visual Studio to crash
- Fixed an inability to publish database projects with null values and an ‘str’ parameter name.
- Added support for SSDT MERGE statements.
- Fixed an issue with F# Interactive where NuGet package references were no longer working.
- Added ability to use Previous layout folders searching packages during layout operations.
- Added additional accessibility improvements for keyboard only users in debugging and menu selection.
- Fixed a localization error with Test Explorer.
- Fixed an error causing builds to fail in C# VSIX projects.
- Fixed an error where publishing failed in an ASP.NET Core App running on Docker (Windows/Linux) to Docker Container with error:»Current context «desktop-linux» is not found on the file system».
- Converted to using the new DartLab instance which gives us the latest fixes and simplifies the YAML.
- Fixed an issue when clicking «Go To Declaration» that resulted in the cursor jumping to an incorrect position.
- Fixed EnC regression.
- Fixed an error causing Visual Studio to stop responding when creating a Service Fabric application.
- Fixed an error where the Container Orchestrator Support context item disappears after adding docker support for an Azure Function project with .NET 5(Isolated) type selected.
- Fixed a situation where F5/Ctrl+F5 produced an error message, «Docker command failed with exit code1.»
- Added Service Fabric and Add Orchestra Support dialog.
- Fixed a failure to restore NuGet deleted packages.
- Fixed an error causing mstest projects to remove LUT windows after renaming.
- Fixed formating when providing no container name in a code search.
- Fixed missing warning messages in CppCoreCheck.
- Fixed a bug when adding a class in ASP.NET causing a yellow bar with the error message: ‘CSharpSyncNamespaceCodeRefactoringProvider’.
- Improved performance around using PointerSafetyXtension in CppCoreCheck.
- Improved localization around VC++ features.
- Fixed a build error when the solutionPath variable evaluates to undefined.
- Fixed a rare scenario that could keep Visual Studio instances from closing if the Test Explorer is open in the solution.
- Fixed a visibility issue with high contrast black in virtual machines shifting focus.
- Fixed an issue where an error «No such image» occurs when removing multi-selected images that have been tagged.
- Improved the XAML typing experience on the LiveShare client.
- Fixed an issue when using the Navigate To with a speech recognition command causing the user to wait for the ToolTip to clear before seeing the result.
- Fixed an issue causing previously opened documents to not restore when a solution is reopened.
- Fixed a UWP crash when using the new Sample Data feature.
- Fixed a bug where there were no project properties provider for «Persistence = AssemblyReference».
- Decreased processor consumption of setup.exe.
- Fixed an issue preventing HRESULT resources from being customized for XBOX.
- Fixed an unhandled exception after clicking «Debug Tests».
- Fixed a build error message «NETSDK1 031» when using a Windows Application Packaging Project.
- Fixed a crash after ending some LiveShare Sessions.
- Fixed a bug causing a failure of the «X» button on a page of the First Launch Wizard.
- Fixed an «Operation not supported» error message in LiveShare.
- Fixes a bug in Cloud Service (extended support) publish with different settings value in different service configurations.
- Fixed an issue with C++20 Modules IntelliSense where some language constructs would cause the compiler to crash.
- Fixed an issue that will cause a small amount of additional memory to leak.
- Fixed an API breaking change on AudioUnitPropertyIDType.
- Developers using UWP unit test framework who wish to run their tests on remote devices or emulators were unable to run the tests on remote devices.
Top Voted Issues From Developer Community
- Code analysis/PREfast performance regression from 16.6.4 to 16.9.4
- Codeanalysis warning C6285 in STL functional.h in VS 16.10 preview 4. Worked in 16.10 preview 2
- EnforceProcessCountAcrossBuilds emits code analysis warnings on system headers
- Compile errors for external headers
- Incorrect lock warnings by analyzer C26110
- CMakePresets based generation on Linux Remote fails with «Error: Object reference not set to an instance of an object.»
- Unable to copy text from git repository view
- Broken intellisense with template specialization
- ICE: ARM64 optimizing for /std:c++latest
- Error adding Apple Developer Account: A Parameter ‘certificateType’ has an invalid value: ‘Unknown value:MAC_INSTALLER_DISTRIBUTION’
- Functional(813) has warning C6285
- ICE on C++20 modules + boost::asio
- 16.9.2 Freezing when working on SQL Server project
- Build Warning MSB4011 Since Last Xamarin and XCode Updates
- How enable the multthread to compile source in Visual studio 2019 16.9 with clangcl
- Incorrect formatting of switch statement with static_casts
- Visual Studio 2019 16.5.4 internal compiler error when using SSE
- Noexcept default constructor
- MSVC Compiler bug on _InterlockedCompareExchange64
- NativeReference cannot recognize MSBuild property value
- Incorrect Diagnostic: 26444 NO_UNNAMED_RAII_OBJECTS
- Incorrect C6240 LOGICALANDNONZERO
- Diagnostic Tools window loads up in miniature and will not resize properly
- Coroutine uses promise_type::unhandled_exception with exceptions disabled
- Bad(noexcept) exception handling information on AMD64
- ToolTip Blocking Search Results
- False postivie error C2176 in C++20 mode
- Operator new provides the wrong arguments to _aligned_malloc when packing is spectified
- Rejects valid parsing of lambda expression
- An error ‘Unable to attach. Process ‘SPUCWORKERPROCESS.exe’ is not running’ shows when deploying SharePoint2019 sandbox project
- Unexpected warning C4834 after updating to 16.10 Preview 2
- Syntactically invalid with a template code is silently ignored with /std:c++latest.
- BUG: Backspacing in branch filter removed characters from code
- StreamJsonRpcRemoteInvocationException: Error enumerating over Github credential store
- Cannot use arrow keys, cut, copy, or paste in Git branch «type here to filter the list» input box
- Error adding Apple Developer Account: A parameter ‘certificateType’ has an invald value: ‘Unknown value: MAC_INSTALLER_DISTRIBUTION’
- Git Integration: Pressing backspace in Visual Studio 2019 branch filter is applied in editor window instead of in branch panel
- Unable to deploy to emulator or device using .NET MAUI
- Visual Studio 2019 Professional 16.10.0 — Tabs do not render correctly for SQL files.
- Cpp targets redirection fails when using DisableInstalledVCTargetsUse=true if MinimumVisualStudioVersion is 16.0
- Build Warning MSB4011 Since Last Xamarin and XCode Updates
- CMake Integration: Environments specified in CMakeSettings.json are not inherited when Visual Studio is used as the generator
- There was an error activating the remote language server
- .pdb locked by ServiceHub.DataWarehouseHost.exe after running VS Profiler
- Visual Studio 2019 Preview can’t launch new MAUI app for Android
- Blazor save & refresh build hangs Visual Studio
- Code Map shows method call not existing in the source code
Known Issues
See all open issues and available workarounds in Visual Studio 2019 by following the below link.
Feedback and suggestions
![]()
We would love to hear from you! For issues, let us know through the Report a Problem option in the upper right-hand corner of either the installer or the Visual Studio IDE itself. The icon is located in the upper right-hand corner. You can make a product suggestion or track your issues in the Visual Studio Developer Community, where you can ask questions, find answers, and propose new features. You can also get free installation help through our Live Chat support.
Blogs
Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.
Visual Studio 2019 Release Notes History
For more information relating to past versions of Visual Studio 2019, see the Visual Studio 2019 Release Notes History page.
Автоматическое переформатирование кода Python в Visual Studio
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Visual Studio позволяет быстро переформатировать код в соответствии с определенными стандартами форматирования.
Выбор метода форматирования
Вы можете задать средство форматирования исходного кода с помощью> > средства форматирования текста в текстовом редакторе> Python.> Средства Python в Visual Studio поддерживают форматирование исходного кода с помощью autopep8, black formatter и yapf.

Поддержка Python в Visual Studio также добавляет полезную команду [Заполнить абзац комментария] в меню «Изменить >дополнительно«, как описано в следующем разделе.
Применение форматирования к выделенному фрагменту или файлу
Чтобы отформатировать выделенный фрагмент, сделайте следующее:
Чтобы отформатировать весь файл, сделайте следующее:
Перенос по словам
Вы можете включить оболочку слов в >текстовом редакторе>параметров>Python. >>

Форматирование текста комментария
Команда Правка>Дополнительно>Заполнить абзац комментариев (вызывается клавишами CTRL+E>P) изменяет форматирование текста заметки, объединяя короткие строки и разбивая слишком длинные.
| Переформатировать | Пример 1 |
|---|---|
| Перед | # This is a very long long long long long long long long long long long long long long long long long long long comment |
| После | # This is a very long long long long long long long long long long long long # long long long long long long long comment |
| Переформатировать | Пример 2 |
|---|---|
| Перед | # foo # bar # baz |
| После | # foo bar baz |
Редактирование кода Python
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Так как при разработке вы много работаете в редакторе кода, поддержка Python в Visual Studio предоставляет соответствующие функции для повышения продуктивности этой работы. К ним относятся выделение синтаксиса IntelliSense, автозавершение, справка по сигнатурам, переопределения методов, а также поиск и навигация.
Редактор также интегрируется с интерактивным окном в Visual Studio, упрощая обмен кодом между ними. Подробные сведения см. в разделах Учебник, шаг 3. Использование интерактивного окна REPL и Использование интерактивного окна. Команда «Отправить в интерактивное окно».
Общие сведения о редактировании кода в Visual Studio см. в статье Возможности редактора кода. Ознакомьтесь также со статьей Структура, чтобы узнать, как сконцентрироваться на определенных разделах кода.
Кроме того, с помощью обозревателя объектов Visual Studio (Вид>Другие окна>Обозреватель объектов или клавиши CTRL+W>J) вы можете проверять классы Python, определенные в каждом модуле, и функции, определенные в этих классах.
IntelliSense
Технология IntelliSense предоставляет следующие возможности: автозавершения, справка по сигнатурам, вывод кратких сведений и цветовая маркировка синтаксиса. Visual Studio 2017 версии 15.7 и более поздней также поддерживает подсказки по типам.
Для улучшения производительности функция IntelliSense в Visual Studio 2017 версии 15.5 и более ранних учитывает базу данных завершения, которая создается для каждого окружения Python в проекте. После добавления, удаления или обновления пакетов может потребоваться обновить базы данных. Их состояние отображается в окне Окружения Python (элемент того же уровня, что и обозреватель решений) на вкладке IntelliSense (см. дополнительные сведения об окне «Окружения»).
Visual Studio 2017 версии 15.6 и более поздних разными способами предоставляет функцию завершения IntelliSense, которая не зависит от базы данных.
Автозавершения
Автозавершения отображаются как операторы, идентификаторы и другие атрибуты, которые можно ввести в текущее расположение в редакторе. Автозавершения, отображаемые в списке, основываются на контексте, а также фильтруются для пропуска неправильных или ненужных параметров. Они часто инициируются при вводе различных инструкций (например, import ) и операторов (включая точку). Но их также можно отобразить в любое время, нажав клавиши CTRL+J>ПРОБЕЛ.

В открытом списке автозавершений можно выполнить поиск необходимого автозавершения с помощью клавиш со стрелками, мыши или путем ввода. Чем больше букв вы вводите, чем точнее фильтруется список для отображения возможных автозавершений. Кроме того, можно использовать следующие ярлыки:
- ввод букв, которые находятся не в начале имени, например parse для поиска argparse;
- ввод букв, которые находятся только в начале слов, например abc для поиска AbstractBaseClass или air для поиска as_integer_ratio;
- пропуск букв, например b64 для поиска base64.

Завершения элементов автоматически отображаются при вводе точки после переменной или значения. Вместе с ними отображаются методы и атрибуты потенциальных типов. Если переменная может быть нескольких типов, в списке содержатся все возможные варианты для всех типов с дополнительными сведениями для указания типов, поддерживающих каждое автозавершение. Если автозавершение поддерживается всеми возможными типами, оно отображается без заметки.

Элементы, которые начинаются и заканчиваются двумя символами подчеркивания, не отображаются по умолчанию. В общем случае к таким элементам не следует обращаться напрямую. Если же элемент нужен, введя два начальных символа подчеркивания, можно добавить эти завершения в список:

Операторы import и from . import отображают список модулей, которые можно импортировать. При использовании from . import список содержит элементы, которые можно импортировать из указанного модуля.

При использовании операторов raise и except отображаются списки классов, которые могут быть типами ошибок. При этом необязательно выводятся все определяемые пользователем исключения, но с их помощью можно быстро найти подходящие встроенные исключения.

При вводе символа @ запускается декоратор и отображаются потенциальные декораторы. Многие из этих элементов невозможно использовать в качестве декораторов. Чтобы определить, какие именно из них следует использовать, обратитесь к документации по библиотеке.

Вы можете настроить поведение автозавершений, выбрав Инструменты>Параметры>Текстовый редактор>Python>Дополнительно. Параметр Фильтрация списка по поисковой строке позволяет применить фильтрацию предложений автозавершения при вводе (флажок установлен по умолчанию), а при выборе параметра Завершение членов отображает пересечение членов отображаются только те автозавершения, которые поддерживают все возможные типы (флажок снят по умолчанию). См. раздел Параметры. Результаты завершения.
Подсказки по типам
Visual Studio 2017 версии 15.7 и более поздней.
Подсказки по типам в Python 3.5+ (PEP 484 (python.org) — это синтаксис аннотаций для функций и классов, который указывает на типы аргументов, возвращаемых значений и атрибутов класса. IntelliSense отображает подсказки по типам при наведении курсора на вызовы функций, аргументы и переменные с этими аннотациями.
В следующем примере класс Vector объявлен как List[float] , и функция scale содержит подсказки по типам для аргументов и возвращаемого значения. При наведении указателя на вызов этой функции отображаются следующие подсказки по типам:

В следующем примере можно увидеть, как аннотированные атрибуты класса Employee отображаются во всплывающем окне завершения IntelliSense для атрибута:

Полезно проверять подсказки по типам на протяжении проекта, поскольку ошибки обычно не возникают до выполнения. Для этой цели Visual Studio интегрирует стандартное средство MyPy через команду контекстного меню Python>Run Mypy в обозревателе решений:

При запуске команды отображается запрос на установку пакета mypy при необходимости. Затем Visual Studio запускает mypy для проверки подсказок по типам в каждом файле Python в проекте. Ошибки отображаются в окне Список ошибок в Visual Studio. При выборе элемента в окне вы перейдете к соответствующей строке в коде.
Приведем простой пример. Следующее определение функции содержит подсказку по типам, указывая на то, что аргумент input имеет тип str , тогда как вызов этой функции пытается передать целое число:
def commas_to_colons(input: str): items = input.split(',') items = [x.strip() for x in items] return ':'.join(items) commas_to_colons(1)
Использование команды Run Mypy в этом коде вызывает следующую ошибку:

В версиях Python, предшествующих 3.5, в Visual Studio также отображаются подсказки по типам, которые вы предоставляете через файлы-заглушки (.pyi). Файлы заглушки можно использовать всякий раз, когда вы не хотите включать подсказки по типам в код напрямую или необходимо создать подсказки по типам для библиотеки, которая не использует их напрямую. Дополнительные сведения см. в разделе Создание заглушек для модулей Python на вики-сайте проекта mypy.
Visual Studio содержит набор пакетов файлов Typeshed для Python 2 и 3, поэтому нет необходимости скачивать их отдельно. Но если вы хотите использовать другой набор файлов, можно указать путь в меню Средства>Параметры>Python>Языковой сервер. См. статью Параметры для Python в Visual Studio.
В настоящее время Visual Studio не поддерживает подсказки по типам в комментариях.
Справка по сигнатурам
Во время написания кода, вызывающего функцию, при вводе открывающейся скобки ( отображается справка по сигнатурам, а также доступные сведения о параметрах и документации. Ее также можно отобразить внутри вызова функции, нажав клавиши CTRL+SHIFT+ПРОБЕЛ. Хотя отображаемые сведения определяются строками документации в исходном коде функции, они содержат любые значения по умолчанию.

Чтобы отключить справку по сигнатурам, выберите Инструменты>Параметры>Текстовый редактор>Python>Общие и снимите флажок Завершение операторов>Сведения о параметрах.
Вывод кратких сведений
При наведении указателя мыши на идентификатор отображается подсказка. В зависимости от идентификатора в кратких сведениях могут отображаться потенциальные значения или типы, доступная документация, возвращаемые типы и расположения определений:

Цветовая маркировка синтаксиса
Цветовая маркировка синтаксиса — это функция, которая использует сведения, основанные на анализе кода, для выделения цветом переменных, операторов и других частей кода. Например, переменные, которые относятся к модулям или классам, могут выделяться другим цветом, нежели функции и остальные значения, а имена параметров могут отличаться цветом от локальных или глобальных переменных. (По умолчанию функции не выделяются полужирным шрифтом.)

Чтобы настроить цвета, выберите Инструменты>Параметры>Среда>Шрифты и цвета и измените записи Python в списке Отображение элементов.

Чтобы отключить цветовую маркировку синтаксиса, выберите Инструменты>Параметры>Текстовый редактор>Python>Дополнительно и снимите флажок Разные параметры>Имена цветов по типам. См. раздел Параметры. Прочие параметры.
Фрагменты кода
Фрагменты кода — это фрагменты кода, которые можно вставить в файлы, введя ярлык и нажав клавишу TAB, или с помощью команды Edit>IntelliSense>Insert Snippet and Surround With, выбрав Python, а затем выберите нужный фрагмент кода.
Например, class является ярлыком для фрагмента кода, который вставляет определение класса. Вот фрагмент кода, который отображается в списке автозавершения при вводе class :

Если нажать клавишу TAB, будет создана остальная часть класса. Можно ввести имя и список базовых классов, перемещаясь между выделенными полями с помощью клавиши TAB, а затем нажав клавишу ВВОД, чтобы начать ввод текста.

Команды меню
При использовании команды меню Правка>IntelliSense>Вставить фрагмент кода сначала выберите Python, а затем — фрагмент кода:

Команда Правка>IntelliSense>Разместить во фрагменте точно так же помещает текущий выделенный фрагмент в текстовый редактор внутри выбранного структурного элемента. Предположим, у вас есть небольшой фрагмент кода:
sum = 0 for x in range(1, 100): sum = sum + x
Если выбрать этот код и команду Разместить во фрагменте, откроется список доступных фрагментов. Если выбрать def в списке, выбранный код будет помещен в определение функции. Вы сможете переходить между выделенным именем функции имя и аргументами с помощью клавиши TAB:

Просмотр доступных фрагментов кода
Доступные фрагменты кода можно просмотреть в диспетчере фрагментов кода. Чтобы открыть его, выберите пункт меню Инструменты>Диспетчер фрагментов кода и выберите Python в качестве языка:

Сведения о том, как создать собственные фрагменты кода, см. в статье Пошаговое руководство. Создание фрагмента кода.
Если вы написали качественный фрагмент кода, к которому вы хотите предоставить общий доступ, разместите его в репозитории и сообщите нам. Возможно, мы сможем включить его в следующий выпуск Visual Studio.
Навигация по коду
Поддержка Python в Visual Studio предоставляет несколько вариантов для быстрой навигации по коду, а также по библиотекам с доступным исходным кодом: Панель навигации, Перейти к определению, Перейти к и Найти все ссылки. Можно также использовать обозреватель объектов Visual Studio.
Панель навигации
Панель навигации отображается в верхней части каждого окна редактора и содержит двухуровневый список определений. Раскрывающийся список слева содержит определения классов и функций верхнего уровня в текущем файле. Раскрывающийся список справа отображает список определений в области, расположенной слева. При перемещении курсора в редакторе эти списки обновляются для отображения текущего контекста, при этом из них можно напрямую перейти к нужной записи.

Чтобы скрыть панель навигации, выберите Инструменты>Параметры>Текстовый редактор>Python>Общие и снимите флажок Параметры>Панель навигации.
Перейти к определению
Команда Перейти к определению позволяет быстро перейти от использования идентификатора (например, имени функции, класса или переменной) к определению в исходном коде. Ее можно вызвать, щелкнув правой кнопкой мыши идентификатор и выбрав Перейти к определению или поместив курсор внутрь этого идентификатора и нажав клавишу F12. Эта команда работает в коде и внешних библиотеках, если исходный код доступен. Если исходный код библиотеки недоступен, команда Перейти к определению переходит к соответствующему оператору import для ссылки на модуль или отображает ошибку.

Функция «Перейти к»
Команда Правка>Перейти к (CTRL+,) позволяет отобразить поле поиска в редакторе, где можно ввести любую строку и увидеть возможные совпадения в коде, определяющем функцию, класс или переменную. Она обеспечивает те же возможности, что и команда Перейти к определению, но без необходимости искать, где используется идентификатор.
Чтобы перейти к определению этого идентификатора, дважды щелкните любое имя или выберите его с помощью клавиш со стрелками и клавиши ВВОД.

Найти все ссылки
Найти все ссылки — это удобная команда для обнаружения, где используется и определен нужный идентификатор, включая операции импорта и назначения. Ее можно вызвать, щелкнув правой кнопкой мыши идентификатор и выбрав пункт Найти все ссылки или поместив курсор внутри этого идентификатора и нажав клавиши SHIFT+F12. Чтобы перейти к расположению элемента, нужно дважды щелкнуть его в списке.

См. также
- Форматирование
- Рефакторинг
- Использование анализатора кода
Шрифты и форматирование для Visual Studio
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Шрифт среды
Все шрифты в Visual Studio должны предоставляться пользователю для настройки. Это в основном делается на странице «Шрифты и цвета» в диалоговом окне «Параметры инструментов>». Ниже перечислены три основные категории параметров шрифта:
- Шрифт среды — основной шрифт интегрированной среды разработки для интегрированной среды разработки, используемый для всех элементов интерфейса, включая диалоговые окна, меню, окна инструментов и окна документов. По умолчанию шрифт среды привязан к системным шрифту, который отображается как 9 pt Segoe UI в текущих версиях Windows. Использование одного шрифта для всех элементов интерфейса помогает обеспечить согласованный внешний вид шрифта во всей интегрированной среде разработки.
- Текстовый редактор — элементы, которые отображаются в коде и других текстовых редакторах, можно настроить на странице текстового редактора в параметрах инструментов>.
- Определенные коллекции — окна конструктора, которые предлагают настройку пользовательских элементов интерфейса, могут предоставлять шрифты, относящиеся к своей области конструктора, на странице параметров в разделе «Параметры инструментов>».
Настройка и изменение размера шрифта редактора
Пользователи часто увеличивают или масштабируют размер и (или) цвет текста в редакторе в соответствии с их предпочтениями, независимо от общего пользовательского интерфейса. Так как шрифт среды используется для элементов, которые могут отображаться в редакторе или конструкторе, важно отметить ожидаемое поведение при изменении одной из этих классификаций шрифтов.
При создании элементов пользовательского интерфейса, которые отображаются в редакторе, но не являются частью содержимого, важно использовать шрифт среды, а не текстовый шрифт, чтобы элементы изменялись предсказуемым образом.
- Для текста кода в редакторе измените размер с помощью параметра шрифта кода и ответьте на уровень масштабирования текста редактора.
- Все остальные элементы интерфейса должны быть привязаны к параметру шрифта среды и реагировать на любые глобальные изменения в среде. Среди прочего необходимо отметить следующие улучшения:
- Текст в контекстных меню
- Текст в украшении редактора, например текст меню лампочки, панель быстрого поиска редактора и переход к области
- Текст метки в диалоговых окнах, например «Найти в файлах » или «Рефакторинг»
Доступ к шрифту среды
В коде Native или WinForms шрифт среды можно получить, вызвав метод IUIHostLocale::GetDialogFont после запроса интерфейса из SID_SUIHostLocale службы.
Для Windows Presentation Foundation (WPF) наследуйте класс диалогового окна из класса оболочки DialogWindow вместо класса WPF Window .
В XAML код выглядит следующим образом:
internal partial class WebConfigModificationWindow : DialogWindow
(Замените Microsoft.VisualStudio.Shell.11.0 текущую версию библиотеки DLL MPF.)
Чтобы отобразить диалоговое окно, вызовите » ShowModal() » в классе. ShowDialog() ShowModal() задает правильное модальное состояние в оболочке, гарантирует, что диалоговое окно находится в центре родительского окна и т. д.
MyWindow window = new MyWindow(); window.ShowModal()
ShowModal возвращает логическое значение? (Логическое значение null) с параметром DialogResult , который можно использовать при необходимости. Возвращаемое значение имеет значение true, если диалоговое окно было закрыто с помощью OK.
Если вам нужно отобразить некоторый пользовательский интерфейс WPF, который не является диалогом и размещается в собственном HwndSource окне, например всплывающем окне или дочернем окне WPF родительского окна Win32/WinForms, необходимо задать FontFamily FontSize и корневой элемент элемента WPF. (Оболочка задает свойства в главном окне, но они не будут унаследованы мимо HWND ). Оболочка предоставляет ресурсы, к которым можно привязать свойства, как показано ниже.
Справочник по форматированию (масштабирование или полужирный шрифт)
Для некоторых диалогов требуется полужирный текст или размер, отличный от шрифта среды. Ранее шрифты, превышающие шрифт среды, были закодированы как » environment font +2 » или аналогичные. Использование предоставленных фрагментов кода поддерживает мониторы с высоким уровнем DPI и гарантирует, что отображаемый текст всегда отображается в правильном размере и весе (например, light или Semilight).
Перед применением форматирования убедитесь, что вы следуют указаниям, приведенным в стиле текста.**
Чтобы масштабировать шрифт среды, задайте стиль TextBlock или Label, как показано. Каждый из этих фрагментов кода, правильно используемый, создаст правильный шрифт, включая соответствующие варианты размера и веса.
Где » vsui » является ссылкой на пространство Microsoft.VisualStudio.Shell имен:
xmlns:vsui="clr-namespace:Microsoft.VisualStudio.Shell;assembly=Microsoft.VisualStudio.Shell.14.0"
Шрифт среды 375 % + свет
Отображается как: 34 pt Segoe UI Light
Использование: (редкий) уникальный фирменный пользовательский интерфейс
Процедурный код: где textBlock находится ранее определенный TextBlock и label является ранее определенным меткой:
textBlock.SetResourceReference(TextBlock.StyleProperty, VsResourceKeys.TextBlockEnvironment375PercentFontSizeStyleKey); label.SetResourceReference(Label.StyleProperty, VsResourceKeys.LabelEnvironment375PercentFontSizeStyleKey);
XAML: задайте стиль TextBlock или Label, как показано ниже.
TextBlock: 375 Percent Scaling
Шрифт среды 310 % + свет
Отображается как: 28 pt Segoe UI Light Use for: крупные заголовки диалогового окна подписи, основной заголовок в отчетах
Процедурный код: где textBlock находится ранее определенный TextBlock и label является ранее определенным меткой:
textBlock.SetResourceReference(TextBlock.StyleProperty, VsResourceKeys.TextBlockEnvironment310PercentFontSizeStyleKey); label.SetResourceReference(Label.StyleProperty, VsResourceKeys.LabelEnvironment310PercentFontSizeStyleKey);
XAML: задайте стиль TextBlock или Label, как показано ниже.
TextBlock: 310 Percent Scaling
Шрифт среды 200 % + Semilight
Отображается как: 18 pt Segoe UI Semilight Use for: subheadings, titles in small and medium dialogs
Процедурный код: где textBlock находится ранее определенный TextBlock и label является ранее определенным меткой:
textBlock.SetResourceReference(TextBlock.StyleProperty, VsResourceKeys.TextBlockEnvironment200PercentFontSizeStyleKey); label.SetResourceReference(Label.StyleProperty, VsResourceKeys.LabelEnvironment200PercentFontSizeStyleKey);
XAML: задайте стиль TextBlock или Label, как показано ниже.
TextBlock: 200 Percent Scaling
Шрифт среды 155 %
Отображается как: 14 pt Segoe UI Use for: заголовки разделов в хорошо пользовательском интерфейсе документа или отчетах
Процедурный код: где textBlock находится ранее определенный TextBlock и label является ранее определенным меткой:
textBlock.SetResourceReference(TextBlock.StyleProperty, VsResourceKeys.TextBlockEnvironment155PercentFontSizeStyleKey); label.SetResourceReference(Label.StyleProperty, VsResourceKeys.LabelEnvironment155PercentFontSizeStyleKey);
XAML: задайте стиль TextBlock или Label, как показано ниже.
TextBlock: 155 Percent Scaling
Шрифт среды 133%
Отображается как: 12 pt Segoe UI Use for: small subheadings in signature dialogs and document well UI
Процедурный код: где textBlock находится ранее определенный TextBlock и label является ранее определенным меткой:
textBlock.SetResourceReference(TextBlock.StyleProperty, VsResourceKeys.TextBlockEnvironment133PercentFontSizeStyleKey); label.SetResourceReference(Label.StyleProperty, VsResourceKeys.LabelEnvironment133PercentFontSizeStyleKey);
XAML: задайте стиль TextBlock или Label, как показано ниже.
TextBlock: 133 Percent Scaling
Шрифт среды 122 %
Отображается как: 11 pt Segoe UI Use for: section заголовки в диалоговых окнах подписи, верхние узлы в представлении дерева, навигация по вертикали вкладок
Процедурный код: где textBlock находится ранее определенный TextBlock и label является ранее определенным меткой:
textBlock.SetResourceReference(TextBlock.StyleProperty, VsResourceKeys.TextBlockEnvironment122PercentFontSizeStyleKey); label.SetResourceReference(Label.StyleProperty, VsResourceKeys.LabelEnvironment122PercentFontSizeStyleKey);
XAML: задайте стиль TextBlock или Label, как показано ниже.
TextBlock: 122 Percent Scaling
Шрифт среды + полужирный
Отображается как: полужирный 9 pt Segoe UI Use for: labels and subheads in signature dialogs, reports и document well UI
Процедурный код: где textBlock находится ранее определенный TextBlock и label является ранее определенным меткой:
textBlock.SetResourceReference(TextBlock.StyleProperty, VsResourceKeys.TextBlockEnvironmentBoldStyleKey); label.SetResourceReference(Label.StyleProperty, VsResourceKeys.LabelEnvironmentBoldStyleKey);
XAML: задайте стиль TextBlock или Label, как показано ниже.
Bold TextBlock
Локализуемые стили
В некоторых случаях локализаторы должны изменять стили шрифтов для разных языковых стандартов, например удаление полужирного шрифта из текста для восточноазиатских языков. Чтобы сделать локализацию стилей шрифтов возможным, эти стили должны находиться в RESX-файле. Лучший способ сделать это и по-прежнему изменять стили шрифтов в конструкторе форм Visual Studio — явно задавать стили шрифтов во время разработки. Хотя это создает полный объект шрифта и может нарушить наследование родительских шрифтов, для задания шрифта используется только свойство FontStyle.
Решение заключается в перехвате события формы FontChanged диалога. FontChanged В этом случае выполните все элементы управления и проверка, если задан их шрифт. Если он задан, измените его на новый шрифт на основе шрифта формы и предыдущего стиля шрифта элемента управления. Примером этого в коде является следующее:
private void Form1_FontChanged(object sender, System.EventArgs e) < SetFontStyles(); >/// /// SetFontStyles - This function will iterate all controls on a page /// and recreate their font with the desired fontstyle. /// It should be called in the OnFontChanged handler (and also in the constructor /// in case the IUIService is not available so OnFontChange doesn't fire). /// This way, when the VS shell font is given to us the controls that have /// a different style for the font (bolded for example) will recreate their font /// and use the VS shell font but with a style variation (bolded . ). /// protected void SetFontStyles() < SetFontStyles(this, this, this.Font); >protected static void SetFontStyles(Control topControl, Control parent, Font referenceFont) < foreach(Control c in parent.Controls) < if (c.Controls != null && c.Controls.Count >0) < SetFontStyles(topControl, c, referenceFont); >if (c.Font != topControl.Font) < c.Font = new Font(referenceFont, c.Font.Style); >> >
Этот код гарантирует, что при обновлении шрифта формы также будут обновлены шрифты элементов управления. Этот метод также должен вызываться из конструктора формы, так как диалоговое окно может не получить экземпляр IUIService и FontChanged событие никогда не срабатывает. FontChanged Подключение позволит диалоговым окнам динамически выбирать новый шрифт, даже если диалоговое окно уже открыто.
Тестирование шрифта среды
Чтобы пользовательский интерфейс использовал шрифт среды и учитывает параметры размера, откройте меню «Параметры > среды инструментов>» и выберите «Шрифт среды>» в раскрывающемся меню «Показать параметры для:».

Пример текста пользовательского интерфейса, который не учитывает шрифт среды
В этом случае «Сведения о пользователе» и «Сведения о продукте» не учитывают шрифт. В некоторых случаях это может быть явным выбором дизайна, но это может быть ошибка, если явный шрифт не указан в рамках спецификаций redline.
Чтобы сбросить шрифт, нажмите кнопку «Использовать значения по умолчанию» в разделе » > Параметры > среды > » и «Цвета«.
Стиль текста
Стиль текста относится к размеру шрифта, весу и регистру. Рекомендации по реализации см. в разделе «Шрифт среды».
Регистр текста
Все прописные
Не используйте все крышки для заголовков или меток в Visual Studio.
Все строчные регистры
Не используйте все строчные регистры для заголовков или меток в Visual Studio.
Предложение и заголовок дела
Текст в Visual Studio должен использовать регистр заголовка или вариант предложения в зависимости от ситуации.
| Используйте вариант заголовка для: | Используйте вариант предложения для: |
|---|---|
| Заголовки диалогов | Наклейки |
| Поля групп | Флажки |
| Пункты меню | Переключатели |
| Элементы контекстного меню | Элементы поля списка |
| Пуговицы | Строки состояния |
| Табличные метки | |
| Заголовки столбцов | |
| Подсказки |
Заголовок регистра
Заголовок является стилем, в котором первые буквы большинства или всех слов в фразе прописываются с прописной буквой. В Visual Studio заголовок используется для многих элементов, включая:
- Подсказки. Пример: «Предварительный просмотр выбранных элементов»
- Заголовки столбцов. Пример: «Системный ответ»
- Пункты меню. Пример: «Сохранить все» При использовании регистра заголовка ниже приведены рекомендации по тому, когда следует прописные слова и когда оставьте их строчным регистром:
Дело предложения
Дело предложения является стандартным методом прописи, в котором только первое слово предложения заглавно, наряду с любыми правильными существительными и существительным «Я». Как правило, дело о предложении проще для аудитории по всему миру читать, особенно когда содержимое будет переведено компьютером. Используйте вариант предложения для:
- Сообщения строки состояния. Это простые, короткие и предоставляют только сведения о состоянии. Пример: «Загрузка файла проекта»
- Все остальные элементы пользовательского интерфейса, включая метки, проверка поля, переключатели и элементы списка. Пример: «Выбор всех элементов в списке»
Форматирование текста
Форматирование текста по умолчанию в Visual Studio 2013 управляется шрифтом среды. Эта служба помогает обеспечить согласованный внешний вид шрифта в интегрированной среде разработки (интегрированная среда разработки), и его необходимо использовать для обеспечения согласованного взаимодействия с пользователями.
Размер по умолчанию, используемый службой шрифтов Visual Studio, поставляется из Windows и отображается как 9 pt.
Форматирование можно применить к шрифту среды. В этом разделе описывается, как и где использовать стили. Сведения о реализации см. в шрифте среды.
Полужирный текст
Полужирный текст используется в Visual Studio и должен быть зарезервирован для следующих элементов:
- Метки вопросов в мастерах
- назначение активного проекта в Обозреватель решений
- Переопределенные значения в окне инструментов «Свойства»
- некоторые события в раскрывающихся списках редактора Visual Basic
- содержимое, созданное сервером в структуре документа для веб-страниц
- Заголовки разделов в сложном диалоговом окне или пользовательском интерфейсе конструктора
Курсив
Visual Studio не использует курсив или полужирный курсивный текст.
Color
- Синий зарезервирован для гиперссылок (навигации и команд) и никогда не должен использоваться для ориентации.
- Более крупные заголовки (шрифт среды x 155% или больше) можно цветить в следующих целях:
- Предоставление визуальной привлекательности для подписи пользовательского интерфейса Visual Studio
- Чтобы привлечь внимание к определенной области
- Чтобы обеспечить облегчение от стандартного темно-серого или черного цвета текста среды
Размер шрифта
Дизайн пользовательского интерфейса Visual Studio предоставляет более легкий внешний вид с большим пробелом. По возможности хром и заголовки были сокращены или удалены. Хотя плотность информации является требованием в Visual Studio, типография по-прежнему важна, с акцентом на более открытые интервалы строк и вариацию размеров шрифтов и весов.
В приведенных ниже таблицах содержатся сведения о конструкторе и визуальные примеры для шрифтов отображения, используемых в Visual Studio. Некоторые варианты шрифта отображения имеют как размер, так и вес, например Semilight или Light, закодированные в их внешний вид.
Фрагменты кода реализации для всех шрифтов отображения можно найти в справочнике по форматированию (масштабированию и полужирным шрифтам).
Шрифт среды 375 % + свет
Сделайте следующее:
— использование варианта предложения
— Всегда используйте легкий весНе делайте следующего:
Визуальный пример:
Шрифт среды 310 % + свет
— более крупный заголовок в диалоговых окнах сигнатуры
— основной заголовок отчетаСделайте следующее:
— использование варианта предложения
— Всегда используйте легкий весНе делайте следующего:
Визуальный пример:
Шрифт среды 200 % + Semilight
-Подзаголовки
— Заголовки в небольших и средних диалоговых окнахСделайте следующее:
— использование варианта предложения
— Всегда используйте полусветный весНе делайте следующего:
Визуальный пример:
Шрифт среды 155 %
— заголовки разделов в пользовательском интерфейсе документа
-ОтчетыDo: Use sentence case
Не делайте следующего:
Визуальный пример:
Шрифт среды 133%
— небольшие подзаголовок в диалоговых окнах подписи
— небольшие подзаголовок в пользовательском интерфейсе документаDo: Use sentence case
Не делайте следующего:
Визуальный пример:
Шрифт среды 122 %
— заголовки разделов в диалоговых окнах подписи
— верхние узлы в представлении дерева
— навигация по вертикали табуляцииDo: Use sentence case
Не делайте следующего:
Визуальный пример:
Шрифт среды + полужирный
— Метки и подзаголовки в диалоговых окнах подписи
— метки и подзаголовки в отчетах
— метки и подзаголовок в пользовательском интерфейсе документаСделайте следующее:
— использование варианта предложения
— Использование полужирного весаНе делайте следующего:
Визуальный пример:
Шрифт среды
Do: Use sentence case
Визуальный пример:
Заполнение и интервалы
Заголовки требуют пространства вокруг них, чтобы дать им соответствующий акцент. Это пространство зависит от размера точки и того, что еще находится рядом с заголовком, например горизонтальное правило или строка текста в шрифте среды.
- Идеальное заполнение для заголовка должно быть 90 % пространства высоты символа столицы. Например, заголовок 28 pt Segoe UI Light имеет заголовок с высотой 26 пт, а заполнение должно быть примерно 23 пт или около 31 пикселей.
- Минимальное пространство вокруг заголовка должно составлять 50 % высоты символа столицы. Меньше места можно использовать, если заголовок сопровождается правилом или другим элементом с жесткой настройкой.
- Полужирный текст шрифта среды должен соответствовать интервалам высоты линии по умолчанию и заполнению.
См. также
- Шрифты (Windows)
- Текст пользовательского интерфейса (Windows)
