Joseph Daigle
Joseph Daigle

Reputation: 48458

How to view the contents of the Solution User Options file (.suo)

Is there any way to view the contents of the solution user options file (the .suo file that accompanies solution files)?

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.

Upvotes: 28

Views: 17567

Answers (6)

aku
aku

Reputation: 123994

I don't know any tool, but you can try to access user settings via IVsPersistSolutionOpts interface

Upvotes: 1

Drew Noakes
Drew Noakes

Reputation: 310997

I created an open source dotnet global tool for this:

dotnet install --global suo
suo view <path-to-suo-file>

More information at https://github.com/drewnoakes/suo

Upvotes: 2

frank koch
frank koch

Reputation: 1178

A bit late for the original poster, but maybe useful to others.

Two freeware viewers for structured storage files (including .suo-files):

https://github.com/ironfede/openmcdf (old URL: http://sourceforge.net/projects/openmcdf/)

http://www.mitec.cz/ssv.html (free for non-commercial use)

When you open a .suo file in one of these viewers, you will see streams related to:

  • Bookmarks
  • Debugger watches
  • Unloaded projects
  • Outlining
  • Task-list user tasks
  • Debugger exceptions
  • Debugger Breakpoints
  • Debugger find source data
  • Open document windows

And much more...

Upvotes: 34

helios456
helios456

Reputation: 1644

You can use the built in tool that comes with OpenMCDF, 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.

Reference: https://github.com/ParticularLabs/SetStartupProjects

Upvotes: 1

Roger Lipscombe
Roger Lipscombe

Reputation: 91865

The .SUO file is effectively disposable. If it's getting too large, just delete it. Visual Studio will create a fresh one.

If you do 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.

Upvotes: 12

Darcy Casselman
Darcy Casselman

Reputation: 2644

I'm not aware of a tool, but you could write a Visual Studio extension to list the contents without too much work.

If you download the Visual Studio SDK, 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).

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 ReadUserOptions method on your package and inspect the contents.

Upvotes: 4

Related Questions