Speed up opening of editors when using Visual Assist in Windows 10 (Fall Creators Update)

Microsoft tightened security in the Windows 10 Version 1709 Fall Creators Update (FCU), but unfortunately, the tightening adversely affects the performance of applications that use the Win32 GetPixel API. Visual Assist is one such application so initial opening of editor windows in Visual Studio, when Visual Assist is active, can be extremely slow.

You can speed up the opening of edtor windows when using Visual Assist to pre-FCU levels by disabling Control Flow Guard for Visual Studio. Navigate to:

Windows Defender Security Center | App & browser control | Exploit protection settings | Program settings | Add program to customize | Add by program name

Be cautious and choose the exact file path(s) for Visual Studio, or disable protection for any application named “devenv.exe”.

Scroll to disable Control Flow Guard (CFG).

You might improve the performance other aspects of Visual Assist in Visual Studio, at least with respect to the effects of tighter security in the FCU, by disabling all 21 program security settings specific to the application.

Apply, and restart your PC.

You can improve performance of all affected applications in the FCU by disabling CFG at the system level:

App & browser control | Exploit protection settings | System Settings

Obviously, disabling a security feature has its own cost, i.e. less security. You can learn more about the slowness of the API at TenForums and in the Visual Studio Developer Community.

November 14th update fixes one crash in Visual Studio

Two bugs in recent updates to Microsoft Windows 10 cause Visual Studio to crash when certain extensions, including Visual Assist, are installed. Microsoft fixed one of the bugs, a broken hook mechanism, in its November 14, 2017, update.

All Windows 10 users with Visual Assist should install the November 14 update, available via Windows Update or via stand-alone packages. Download the stand-alone update from the Windows Update Catalog, accessed from the bottom of the description of the update for Windows 10 Version 1703 or update for Windows 10 Version 1709 Fall Creators Update.

Microsoft acknowledged that the second bug, which causes CreateWindowEx() to fail, exists in Windows 10 (64-bit) Fall Creators Update (Version 1709). The CreateWindowEx bug also causes Visual Studio to crash when Visual Assist is installed. The workaround recommended by Microsoft and by Whole Tomato is to rollback to the previous version of Windows 10. If you do rollback, defer installation of the Fall Creators Update and install the November 14th update.

If you run Windows 10 (64-bit) Fall Creators Update (Version 1709) and you cannot rollback, install Visual Assist build 2238 to mitigate the CreateWindowEx() failures. If Visual Studio continues to crash, disable Visual Assist and wait for another update from Microsoft, mid-December at earliest, before resuming normal use of Visual Assist.

Visit our discussion forums or contact us if you have questions or need technical support.

Thank you for your patience as we work around these Windows bugs.

Stay tuned for our next announcement.

Defer installation of the Fall Creators Update to avoid crashes in Visual Studio

The Windows 10 Fall Creators Update (FCU) 1709 contains a bug that causes CreateWindow() and CreateWindowEx() to fail unpredictably. The bug prevents Visual Assist from rendering all components of its UI, and eventually causes Visual Studio to crash.

Microsoft has acknowledged the CreateWindow() bug and is investigating its cause, but the bug will not be fixed—at the earliest—until the December Patch Tuesday. If you want to use Visual Assist until Microsoft releases a fix, defer installation of the Windows 10 Fall Creators Update.

Separately, Microsoft broke Windows hook procedures in Windows 10 Build 15063.608, issued Sept 12th. The hook bug causes Visual Studio to crash intermittently, e.g. when opening certain dialogs of Visual Assist. Microsoft has acknowledged the bug and is scheduled to release a fix on November Patch Tuesday.

Visit our discussion forums or contact us if you have questions or need technical support.

Stay tuned for our next announcement regarding the bugs.

Recent updates to Microsoft Windows 10 cause Visual Studio to crash

Several bugs in recent updates to Microsoft Windows 10 cause Visual Studio to crash when certain extensions, including Visual Assist, are installed:

  1. Windows 10 Build 15063.608, issued Sept 12th, broke Windows hook procedures located in high memory.
  2. Windows Version 1709 (Fall Creators Update), released Oct 17th, broke also CreateWindow() and CreateWindowEx().

Microsoft is actively seeking resolutions. Fixes should be released on a Patch Tuesday.

If you run Windows 10, and:

  1. You want to try Visual Assist, wait for the problems to be resolved before starting your trial.
  2. You use Visual Assist, you have not yet installed the Fall Creators Update, and:
    • Visual Studio crashes when you open dialogs of Visual Assist, disable Visual Assist. You are likely suffering from the broken hook mechanism.
    • Visual Studio does not crash, keep your version of Windows, i.e. delay installation of the Fall Creators Update.
  3. You use Visual Assist, you installed the Fall Creators Update, and components of the Visual Assist UI fail or Visual Studio crashes, disable Visual Assist or try rolling back to the previous version of Windows. You are likely suffering from CreateWindow() failures.

Visit our discussion forums or contact us if you have questions or need technical support.

Stay tuned for our next announcement regarding the recent Windows 10 updates.

Visual Assist build 2237 is available

Visual Assist build 2237 fixes one bug applicable only to users with Unreal Engine 4 (UE4). The fix prevents a hang of Visual Studio that might occur when smart suggestions appear for UPARAM().

If you develop with UE4, download the installer for build 2237.

If you don’t develop with UE4, or have no idea what UE4 is, you are welcome to skip the build.

Visual Assist build 2237 requires software maintenance through 2017.10.03.

Visual Assist build 2235 is available

Two recent, significant additions to Visual Assist—Source Links and Code Inspection—continue to mature in build 2235. The build also provides a valuable set of enhancements and fixes for established features of Visual Assist.

Source Links now opens hyperlinks found in comment blocks using one’s external, default browser. And although Microsoft finally introduced the functionality in Visual Studio 2017 15.3, Visual Assist makes it available in all versions of Visual Studio going back to 2010. Additionally, Source Links opens website addresses written without the http or https protocol.

Code Inspection expands its set of quality checks by two in build 2235:

  • Integer literal can be replaced with ‘true’ or ‘false’
  • Reduce container capacity with shrink_to_fit() instead of copy and swap

Code Inspection also allows fine tuning of quick fixes, configured in the options dialog for Visual Assist:

Developers taking advantage of lightweight solution load of C/C++ projects in Visual Studio 2017 15.3 will find that the Open-File-in-Solution dialog of Visual Assist list files in lightweight-loaded projects as deferred.

Visual Assist parses files in deferred projects as the projects, or their containing solutions, are loaded.

Finally, build 2235 expands the options dialog for Visual Assist with pages that configure the behavior of GoTo Implementation (Alt+G), GoTo Related (Shift+Alt+G), and VA Hashtags.

Build 2235 requires software maintenance through 2017.09.25.

Learn to connect to external applications and website using Source Links, check out the complete list of what’s new in build 2235, or download the installer.

Visual Assist build 2231 is available

Build 2231 provides several small but noteworthy improvements for all users of Visual Assist, and one extraordinary improvement for developers who use also Unreal Engine 4 (UE4).

Visual Assist typically parses all files in a solution, and the system headers it includes, the first time a solution is opened. For a large solution, parsing might take a few minutes. For a solution that includes UE4, parsing might take tens of minutes.

Build 2231 improves initial parse times for all large solutions. For typical solutions, parse times drop 10-20% with the new build. For UE4 solutions, parse times can drop a whopping 75%. For UE4, the reduction can be so great you might assume Visual Assist is broken; it’s not. It’s faster.

Source Links, which turns comment expressions into links to external applications, was introduced in the last blog post. With build 2231, the feature can now find strings by regular expression, not just keyword, so you can connect more often to more external applications. For example, if candidate links to an external bug tracker sometimes include a prefix ‘c’ that must be excluded from tracker URLs:

You can extract values, e.g. “2134”, via a regular expression that accounts for the optional ‘c’ and includes named group “VALUE”:

Also, if you write a custom Source Links plug-in to connect to an external application, you can now tell Visual Assist where to find your plug-in.

Build 2231 also improves support for NuGet projects, projects that include Google Test, and multiple monitors in mixed-mode DPI.

Build 2231 requires software maintenance through 2017.08.15.

Check out the complete list of what’s new in build 2231, learn about Source Links, learn to enable support for UE4, or download the installer.