VSCT.exe, more than a compiler
For more information about VSCT and the new way of defining VS commands you can check Aaron's posts CTC is dead...Long Live VSCT! (Part 1) and CTC is dead...Long Live VSCT! (Part 2) or mine.
So, lets go to the main topic of this post:
Important: This applies to the VSCT compiler that comes with the VSSDK V4 for VS 2005.
The VSCT compiler can perform multiple tasks. Its main usage is for compiling VSCT command definition files, but on this post I am going to show another useful operation that could be performed with the VSCT compiler:
VSCT decompilation:
You can use the VSCT compiler to decompile an assembly or a cto file and obtain the VSCT command definition file.
One important thing to note is that the output of the VSCT compiler is also .cto file (same as CTC.exe).
Because the outputs are the same, it doesn't matters if the CTO embedded in the assembly was generated with CTC.exe or with VSCT.exe. And the good thing is that you don't need to specify what are you decompiling, all its done automatically by VSCT.exe. This also means that you could do an implicit CTC to VSCT transformation.
Example:
The VSCT.exe is located under %VSSDK_InstallDir%\%Version_Number%\Prerelease\VSCT\
vsct.exe C:\Temp\MyPackage\MyPackage\obj\Debug\MyPackage.cto MyPackage.vsct
or
vsct.exe C:\Temp\MyPackage\MyPackage\bin\Debug\MyPackage.dll MyPackage.vsct
Pablo