ReSharper Ultimate 2016.3 Release Candidate

The new release is now so close, you can almost taste it: please download ReSharper Ultimate 2016.3 Release Candidate.

ReSharper Ultimate 2016.3 Release Candidate

If you have watched the progress of Early Access Program but were hesitant to try the early builds in your production environment, Release Candidate is just the right build to test-drive 2016.3 in your daily work. Please do download the RC and let us know if there are any critical issues compared to the latest released version, 2016.2.2.

Here’s a quick recap of changes introduced in 2016.3:

  • All ReSharper Ultimate tools can now work with Visual Studio 2017 RC (still not supported: lightweight solution load; .NET Core unit testing targeting .NET Core 1.1+)
  • ReSharper implements initial support for C# 7 and VB.NET 15; adds new code generation actions, context actions and quick-fixes; introduces a Transform Parameters refactoring; supports running .NET Core unit tests that target .NET Core 1.0.x in Visual Studio 2015; brings noticeable improvements in usage search and ReSharper Build; improves support for TypeScript, JavaScript and HTML; extends the language injection mechanism.
  • ReSharper C++ starts to support the Catch unit testing framework and improves its Boost.Test runner; adds refactorings to introduce or inline typedefs; improves Quick Documentation and Quick Info controls; adopts the idea of postfix completion and postfix templates from the mainline ReSharper.
  • dotCover, dotTrace and dotMemory level up support for .NET Core profiling and coverage.
  • dotCover introduces a more compact way to highlight coverage status in Visual Studio code editors, which is very relevant for Continuous Testing.
  • dotTrace adds multiple improvements to its Timeline Viewer.
  • dotPeek reveals a variety of metadata in its Assembly Explorer.
  • dotMemory extends its set of automatic memory inspections.

Please download the Release Candidate, and do voice your concerns if something goes wrong as you’re using it.

This entry was posted in How-To's and tagged , , , , , , , . Bookmark the permalink.

33 Responses to ReSharper Ultimate 2016.3 Release Candidate

  1. smad says:

    There any chance to return old full line highlighting (as option), except using old version?

    Not sure but EAP11 was more stable receive after 3 minutes of using (my new record of all eap 2016.3)

  2. CodingGorilla says:

    Just curious what this means: “still not supported: incremental solution load” regarding VS 2017 RC.

    • Jura Gorohovsky says:

      Incremental solution load = lightweight solution load as Microsoft calls it. I’ve corrected the post to avoid confusion, thanks for noticing.

      We are yet to make a set of modifications to support this Visual Studio 2017 feature reliably. Support is coming either in 2016.3.x or 2016.7.

  3. Pingback: Auf dem Weg zu ReSharper Ultimate 2016.3 -

  4. Sebastian says:

    Should xunit tests be working on VS 2017 with .net core 1.0? because i can’t get them to run?! Maybe i’m missing something..

    • Jura Gorohovsky says:

      Can you clarify how you manage to target .NET Core 1.0 in VS2017 RC? This doesn’t seem like an expected scenario: new projects that it creates target 1.1, and AFAIK older projects that you open in VS2017 RC are supposed to be retargeted to 1.1.

  5. Pingback: Dew Drop - December 9, 2016 (#2380) - Morning Dew

  6. i2um1 says:

    How can I turn off autocomplete feature at all? I hate this feature ’cause it slows down my typing speed very much!

    • Jura Gorohovsky says:

      Autocomplete of what? Can you be more specific in terms of language, functionality and context?


      “In C# editor, when I type var smokeTestRunner = new SmokeTests({caret}); and my cursor is at {caret}, ReSharper takes a minute to invoke completion suggestions”.


  7. i2um1 says:

    OFC, e.g.:
    1. when I type string.Join R# changes it to Sting.Join(_);
    2. when I type a brace R# autoclose it.
    And so on.
    Not to mention the fact that sometimes R# stops analyzing cs-file correctly. (Simple project with a single class)

    Additionally, I don’t need autocomplete any class/function name when I press on space/tab/anything else.
    So I want to turn off all autocomplete features.

    • zlrbt says:

      1. see RESHARPER|Options…|IntelliSence|General, Autopopup and Completing Characters. You can turn off R# completion for particular language, turn off autopopup or disable completing on space.
      2. To disable closing brace autoinsertion see RESHARPER|Options…|Editor|Editor Behaviour

    • Alexander Kurakin says:


      – Disable auto inspecting closing brace: ReSharper | Options | Environment | Editor | Editor Behavior | Braces and Parenthesis;

      – Select “Built-in type naming” style: ReSharper | Options | Code Editing | C# | Code Style | Built-in type naming | When referencing built-in type, prefer using.

      – Disable autocompete on specific keys: ReSharper | Options | Environment | IntelliSense | Completing Characters | “Do not complete on” field

      – As for stop analyzing cs-file: please submit a request here with more details


  8. Ben says:

    I asked on the last blog post when R# would support more of the C# 7 features, and got the answer back “when they’ve been finalized in the VS2017 RTM”.

    Are you really expecting them to change much if at all from the VS2017 RC? I mean, they don’t call it an RC for nothing… I’d hope that at least the language features would be fixed in stone by this point. :-)

    • Jura Gorohovsky says:


      Generally, we do expect changes even after RC, and yesterday’s announcement of .NET Core tooling in a RC update is one example why we do.

      I can’t comment on expected language changes as I don’t have enough information but I’ll ask someone on the language support team.

    • Alexander Shvedov says:


      Yes, we do really expect design changes at this point, “RC” means nothing nowadays 😐 For example, pattern wildcards are not yet merged into Roslyn’s master and they have pretty serious impact on language/R# features, unified deconstructions like (var a, b) = ...; are not yet working (and it is unclear if they would be or not), throw expressions are not working in lambda expressions yet, tuple types component names checking behavior is still unclear and I can continue on and on…

      During previous release Roslyn team changed the design of using static directive (to allow importing of all types, rather than static classes only) in less than a month before 2015 RTM. Or “primary constructors” feature thrown away a few months before C# 6.0 release… R# is still able to parse primary constructors :) Unfortunately, we have to be careful and wait for final designs to avoid wasting resources on declined proposals…

      Our plan is to have basic C# 7.0 support available in R# by the time VS2017 RTM ships. We are actively working on throw-expressions, expression-bodied constructors/accessors and deconstruction now, ref-returns are on the horizon. New features would be available in upcoming R# 2017.1 EAP builds.

    • Ben says:

      I figured at least C# would be set in stone, since changes to the implementation require so much in terms of design and testing for backwards compatibility etc.

      Alexander: I thought wildcards weren’t making it into the release.

      Also, I’m not sure whether you meant var (a, b) = ..., but that pattern does work. Also, re throw expressions in lambdas, the following compiles in the RC:

      Func x = () => 1 == 1 ? false : throw new ArgumentException();

      Also, tuple name checking is solid as far as I’ve been able to tell. So, yeah, sorry to be a pedant, and I completely understand caution when dealing with prerelease stuff…

  9. Alexey says:

    Guys, all yours new features for resharper c++ are nothing without performance.
    Your memory consumption, stability and the possibility to work with large projects are very bad. Visual assist with less number of features is better able to large projects. Please, let’s resharper c++ 2017 will be with one feature – performance.

  10. John Doe says:

    The feature I was most excited about – postfix completions for cpp, seem to only be working for .cpp files.
    That is really disappointing, this feature would obviously benefit c much more, and it sucks that it doesn’t work there.

    • John Doe says:

      I was mistaken, while the completion works for C for custom made types, the way it works for primitives it kind of weird – it seems that only several pre-defined functions work for them, and all of the ones that do exist in only in cpp files and not in c files.
      I don’t see why the normal completion works with the pre-builds.

      The other problem with the system, is that it suggests EVERY function that accepts a pointer for any type, since it can convert T to &T, and then send T* to any kind of pointer. I think in the first time using autocomplete it should only show functions that explicitly accept T*, and on 2x show every function that accept a pointer.

      With that being said – great feature and great version!

      • Igor Akhmetov says:

        John, thanks a lot for your feedback!

        Postfix completion does not work yet for arguments of fundamental types and pointers/references to them, both in C and in C++. We’ll see if we can work around this, please vote for to receive updates.

        As for your second comment, could you please create a request in youtrack with a code snippet where you think completion can be improved (or leave one here)? Thanks!

        • John Doe says:


          struct A{int x;};
          struct B{int x;};
          void a(struct A a) {}
          void a_ptr(struct A* a){}
          void b_ptr(struct B* b){}

          Expected behavior:

          struct A item;
          item.{Completion} – Shows x, a(), a_ptr()

          Current behavior in .c files:

          struct A item;
          item.{Completion} – Shows x, a(), a_ptr(), b_ptr(). (unexpected)

          Current behavior in .cpp files:

          struct A item;
          item.{Completion} – Shows x, a(), a_ptr(); (expected)

          A nice feature to maybe add in the future is:
          struct A item;
          item.{2x completion} – Shows x, a(), a_ptr(), b_ptr()
          {choose b_ptr()}
          b_ptr((b_ptr *) &item); – or the most appropriate cast for cpp

Leave a Reply to Alexander Shvedov Cancel reply

Your email address will not be published. Required fields are marked *