<p>Are there any free tools available to view the contents of the solution user options file (the .suo file that accompanies solution files)?</p>

<p>I know it's basically formatted as a file system within the file, but I'd like to be able to view the contents so that I can figure out which aspects of my solution and customizations are causing it grow very large over time.</p>

[{'answer_id': 54066, 'author': 'aku', 'author_id': 1196, 'author_profile': 'https://Stackoverflow.com/users/1196', 'pm_score': 1, 'selected': False, 'text': '<p>I don\'t know any tool, but you can try to access user settings via <a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivspersistsolutionopts_members%28VS.80%29.aspx" rel="nofollow noreferrer">IVsPersistSolutionOpts</a>  interface</p>\n'}, {'answer_id': 60220, 'author': 'Darcy Casselman', 'author_id': 5062, 'author_profile': 'https://Stackoverflow.com/users/5062', 'pm_score': 2, 'selected': False, 'text': '<p>I\'m not aware of a tool, but you could write a Visual Studio extension to list the contents without too much work.</p>\n\n<p>If you download the <a href="http://msdn.microsoft.com/en-us/vsx/default.aspx" rel="nofollow noreferrer">Visual Studio SDK</a>, it has some straightforward examples that you can use.  Find one that looks appropriate (like maybe the Toolwindow, if you want to give yourself a graphical display) and lift it (for your own personal use, of course).</p>\n\n<p>What makes it easy is that the Package class which you implement in any VS extension, already implements the IVSPersistSolutionOpts, as aku mentioned.  So you can just call the <a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivspersistsolutionopts.readuseroptions(VS.80).aspx" rel="nofollow noreferrer">ReadUserOptions</a> method on your package and inspect the contents.</p>\n'}, {'answer_id': 161261, 'author': 'Roger Lipscombe', 'author_id': 8446, 'author_profile': 'https://Stackoverflow.com/users/8446', 'pm_score': 5, 'selected': True, 'text': "<p>The .SUO file is effectively disposable. If it's getting too large, just delete it. Visual Studio will create a fresh one.</p>\n\n<p>If you <em>do</em> want to go poking around in it, it looks like an OLE Compound Document File. You should be able to use the StgOpenStorage function to get hold of an IStorage pointer.</p>\n"}, {'answer_id': 24721006, 'author': 'frank koch', 'author_id': 1926353, 'author_profile': 'https://Stackoverflow.com/users/1926353', 'pm_score': 5, 'selected': False, 'text': '<p>A bit late for the original poster, but maybe useful to others.</p>\n\n<p>Two freeware viewers for structured storage files (including .suo-files):</p>\n\n<p><a href="https://github.com/ironfede/openmcdf" rel="nofollow noreferrer">https://github.com/ironfede/openmcdf</a> (old URL: <a href="http://sourceforge.net/projects/openmcdf/" rel="nofollow noreferrer">http://sourceforge.net/projects/openmcdf/</a>)</p>\n\n<p><a href="http://www.mitec.cz/ssv.html" rel="nofollow noreferrer">http://www.mitec.cz/ssv.html</a> (free for non-commercial use)</p>\n\n<p>When you open a .suo file in one of these viewers, you will see streams related to:</p>\n\n<ul>\n<li>Bookmarks</li>\n<li>Debugger watches</li>\n<li>Unloaded projects</li>\n<li>Outlining</li>\n<li>Task-list user tasks</li>\n<li>Debugger exceptions</li>\n<li>Debugger Breakpoints</li>\n<li>Debugger find source data</li>\n<li>Open document windows</li>\n</ul>\n\n<p>And much more...</p>\n'}, {'answer_id': 32376550, 'author': 'helios456', 'author_id': 177789, 'author_profile': 'https://Stackoverflow.com/users/177789', 'pm_score': 1, 'selected': False, 'text': '<p>You can use the built in tool that comes with <a href="http://openmcdf.sourceforge.net/" rel="nofollow">OpenMCDF</a>, which is called Structured Storage Explorer.  It doesn\'t allow you to see all the details, but allows you to see all the individual settings and their sizes.  In order to see the actual settings, you need to format the bytes as UTF-16.</p>\n\n<p>Reference:\n<a href="https://github.com/ParticularLabs/SetStartupProjects" rel="nofollow">https://github.com/ParticularLabs/SetStartupProjects</a></p>\n'}, {'answer_id': 59385061, 'author': 'Drew Noakes', 'author_id': 24874, 'author_profile': 'https://Stackoverflow.com/users/24874', 'pm_score': 1, 'selected': False, 'text': '<p>I created an open source dotnet global tool for this:</p>\n\n<pre><code>dotnet install --global suo\nsuo view &lt;path-to-suo-file&gt;\n</code></pre>\n\n<p>More information at <a href="https://github.com/drewnoakes/suo" rel="nofollow noreferrer">https://github.com/drewnoakes/suo</a></p>\n'}]
['https://Stackoverflow.com/questions/54052', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/507/']