Some personal development notes on using SharpShell library to develop Windows Explorer context menu extension for Windows 7+ and 64bit platforms:
- Make sure you checked: Project properties > Application > Assembly Information > Make COM Visible
- Make your own build of the SharpShell library and tools from the source code – to make sure the unmanaged DLLs are 64bit compatibile
- Make sure you’ve signed the assemble: Project properties > Signing:
- Check “Sign the assembly”
- Select <new> file
- Name it however you want (e.g. “key”)
- Make sure that ALL assemblies you’re using are signed
- Do not declare your constructor at implementation class of SharpContextMenu
- it will cause your SharpShell Server to become Unidentified in the Server Manager
Remarks on general development process:
- There is no need to use the server registration command line tool nor BuildTask command — new Server Manager has menu option for server registration
- “Restart Explorer” option of Server Manager might start new Explorer instance without killing (but just hiding task bar) existing one. This might prevent you to build the project, as output dlls are used by other process (explorer.exe)
Resources:
Other tools:
- http://www.nirsoft.net/utils/shexview.html
- a shell extension explorer, showing all installed extension on the system
- useful when removing some previous tests from the system