I want to install a custom project template with my tool. The template uses a Wizard, so I'm including an assembly and putting it into the GAC on the target machine. Now, this assembly has lots of dependencies like Interop.IWshRuntimeLibrary.dll, EnvDTE, and such. Should I redistribute these assemblies, or I can be sure the target machine can find them?
No, you should not redistribute EnvDTE at least since this would be illegal. Look in the redist.txt
file under the directory where Visual Studio is installed for a list of microsoft files that you are allowed to redistribute. EnvDTE is always available on a machine with Visual Studio installed.
When it comes to Interop.IWshRuntimeLibrary.dll I don't exactly know what it is, but I think that youmay be allowed to redistribute automatically generated interops, but probably not the DLL it "wraps". Found a post about this here.
Also worth checking is what the redistributable MSI that comes with the VS SDK contains, since you may redistribute this MSI and install it as part of your program.