You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The problem arises when user tries to store too many tab groups. Since we store all tab groups (with full paths to all open tabs for each group) in one string and windows registry's max string length is 1MB we pretty quickly reach this limit and registry key storing operation fails.
Solution:
I propose to store each tab group in its own registry key instead of saving all groups in one key.
This way the amount of groups becomes unlimited and length limit for all tabs paths for one group is ~500k (aforementioned 1 MB)
Results:
Here's how the registry storage look like before and after the proposed change:
Important:
This version will save open tabs in different format in registry so previous versions of this extension won't be able to open it (but they could still work with their "old" format).
Additional fixes:
Add appveyor script
Bump Target Framework version from v4.5.2 to v4.8
Fix MSVC warning about synchronized extension loading
Had used SaveAllTheTabs for VS2017 for a while, gave the published version of this a try for VS2019, having no issues. Thank you for doing this. Here's hoping the PR is accepted.
<entry> <record>857</record> <time>2020/10/02 18:09:12.417</time> <type>Error</type> <source>VisualStudio</source> <description>CreateInstance failed for package [SaveAllTheTabsPackage]Source: 'mscorlib' Description: Could not load file or assembly 'Microsoft.VisualStudio.Shell.15.0, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.Shell.15.0, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.VisualStudio.Shell.15.0, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
 at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type)
 at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)
 at System.Activator.CreateInstanceFromInternal(String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo)
 at System.AppDomain.CreateInstanceFrom(String assemblyFile, String typeName)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
</description> <guid>{A0217E5B-1DFA-4FA1-98AA-7550D6A32076}</guid> <hr>80004005 - E_FAIL</hr> <errorinfo></errorinfo> </entry>
Unable to open extension inside VS2017. Was still having issue [#27] which is why I just tried this updated version.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem cause:
The problem arises when user tries to store too many tab groups. Since we store all tab groups (with full paths to all open tabs for each group) in one string and windows registry's max string length is 1MB we pretty quickly reach this limit and registry key storing operation fails.
Solution:
I propose to store each tab group in its own registry key instead of saving all groups in one key.
This way the amount of groups becomes unlimited and length limit for all tabs paths for one group is ~500k (aforementioned 1 MB)
Results:
Here's how the registry storage look like before and after the proposed change:

Important:
This version will save open tabs in different format in registry so previous versions of this extension won't be able to open it (but they could still work with their "old" format).
Additional fixes:
More:
I've also merged this bugfix with MSVC2019 support fix and published it on Open VSIX Gallery.
Feel free to download and test it :)
Resolves #27