ReSharper Ultimate 2016.3 Release Candidate

Jura Gorohovsky

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.

Comments below can no longer be edited.

44 Responses to ReSharper Ultimate 2016.3 Release Candidate

  1. Mark Monster says:

    November 12, 2010

    What are the plans for supporting Razor in Resharper?

    Any chance for a Resharper 5.2 with support for Razor?

  2. Hadi Hariri says:

    November 12, 2010

    Hi Mark,

    We will be supporting it for version 6.

  3. Sanjay says:

    November 13, 2010

    Now format Code is gone on chtml files with Resharper. Any workarounds ?

  4. Roberto Hernandez says:

    November 13, 2010

    When is R# 6.0 going to be out?
    Is there a timeline for the release.

  5. Michael T. says:

    November 16, 2010

    Furthermore from @Roberto question.
    Will R# 6 be a free upgrade?
    If not, can you please provide more info on the pricing?
    Thank you in advance

  6. Jura Gorohovsky says:

    November 16, 2010

    Not aware of any workarounds. Will investigate.

    R# 6 is coming out in Spring 2011
    Early access program opens in a couple of weeks

    @Michael T.
    As a major release, R# 6 will be a paid upgrade. We don’t have specific pricing info at this time, but our usual upgrade price is 60% of new license price, and it will most likely stay this way with upgrades to v6.

  7. ahjohannessen says:

    November 17, 2010

    Razor support is nice and all – What about support for the Spark ViewEngine ?

  8. Jura Gorohovsky says:

    November 17, 2010

    There’s a corresponding feature request at
    However, its status is not clear right now in light of the Razor story as well as other R# features planned. It’s very likely that we’re unable to support Spark for v6.

  9. Harald-René Flasch says:

    July 13, 2011

    Just installed R# 6.0 and it seems to work fine. Also Razor is here now 😉

  10. salma says:

    September 8, 2016

    Hi Hadi
    Can I apply Formatting with cleaningUp code in Razor files?
    my file just conatins HTMLHelper
    like this

    @Html.BeginTableHeader(Html.OverviewHeader(…), Html.OverviewHeader(…)

  11. Yogendra Valani says:

    September 26, 2016


    what should I do if when I click “Open with…” there is no option to select Razor editor



  12. smad says:

    December 9, 2016

    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)

    • Jura Gorohovsky says:

      December 9, 2016

      I can see several exception reports from you but it’s not clear what exactly you’re doing that causes this exception to occur. Can you please clarify this? Thanks

  13. CodingGorilla says:

    December 9, 2016

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

    • Jura Gorohovsky says:

      December 9, 2016

      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.

  14. Auf dem Weg zu ReSharper Ultimate 2016.3 - says:

    December 9, 2016

    […] bringt dieser zwar nicht mit, trotzdem lohnt sich das ausführliche Testen, betont Jura Gorohovsky im entsprechenden Ankündigungspost. Dort finden sich auch noch mal die Highlights von ReSharper Ultimate 2016.3 übersichtlich […]

  15. Sebastian says:

    December 9, 2016

    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:

      December 9, 2016

      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.

      • Sebastian says:

        December 10, 2016

        Yeah sure, i made a project from scratch and this is what inside my csproj
        as you can see it target 1.0.1, i also made a new one right now and the result is the same. Then if i open the nuget package manager it ask if i want to update to 1.1, but new projects are 1.0.1.

        • Jura Gorohovsky says:

          December 13, 2016

          Thanks Sebastian

          Looks like we have issues with any Core unit tests in VS2017 RC due to Visual Studio’s API changes. We’ll make fixes as we receive more info from Microsoft about the changes. This will probably target a bugfix update or, worst case, 2017.1 EAP.

          • Matt Psaltis says:

            February 2, 2017

            Hi Jura,

            Is there a youtrack issue I can follow for this fix?

            • Jura Gorohovsky says:

              February 2, 2017

              Matt, RSRP-461908 is probably the best issue to follow.

  16. Dew Drop - December 9, 2016 (#2380) - Morning Dew says:

    December 9, 2016

    […] ReSharper Ultimate 2016.3 Release Candidate (Jura Gorohovsky) […]

  17. i2um1 says:

    December 9, 2016

    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:

      December 9, 2016

      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”.


  18. i2um1 says:

    December 9, 2016

    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:

      December 12, 2016

      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:

      December 12, 2016


      – 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


  19. Ben says:

    December 9, 2016

    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:

      December 13, 2016


      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:

      December 13, 2016


      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.

      • Dan says:

        March 7, 2017

        “R# is still able to parse primary constructors ”

        That is hilarious. Thanks for sharing.

    • Ben says:

      December 13, 2016

      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…

      • Alexander Shvedov says:

        December 13, 2016

        Wildcards and reworked deconstruction PR, just merged into `master`:

        Throw expression should also work here: `Action a = () => throw null;`, just like in expression-bodied member body.

        Unified deconstruction would allow simultaneous assignment and declarations:
        int x;
        (x, int y) = point;

        “Solid” tuple component name checking is still a subject of design and implementation:

        • Ben says:

          December 16, 2016

          I should have known better than to argue with the guy who does this for a living. 🙂

          Mea culpa. Thanks again for a great product.

  20. Alexey says:

    December 10, 2016

    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.

    • always disappointed end user says:

      December 13, 2016

      I agree , best feature of resharper can be performance.
      They just don’t know this or they testing this in small environment.

    • Jura Gorohovsky says:

      December 13, 2016

      Performance optimization is our continuous effort but we can do very little without having performance snapshots at hand. If you’re struggling with performance, please send a performance snapshot our way. Before you do, you might want to review your Visual Studio + ReSharper environment for issues that are known to cause slowdowns. Thanks

    • Igor Akhmetov says:

      December 14, 2016

      In addition to the usual assortment of performance fixes, R++ 2016.3 introduces the “Third-party Code” settings page, where you can specify which files/folders to exclude from indexing. So if the overall performance is unacceptable for you, you can exclude source files that you are not working on to speed up R++.

  21. John Doe says:

    December 11, 2016

    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:

      December 11, 2016

      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:

        December 12, 2016

        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:

          December 13, 2016


          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

          • Igor Akhmetov says:

            December 13, 2016

            Thanks for the clarification!

            b_ptr gets included because pointers to unrelated structs can be implicitly converted to each other in C, but we should definitely not include these functions in the completion list – I filed to track this issue.


Subscribe to .NET Tools updates