packaging an external exe file with dll library

Microsoft Visual Studio .NET

I need some information about proper technique for nested 
I have created a library as a dll (I'll call this "lib.dll") that I then add 
as a reference in my main project. The lib.dll itself has a couple other dlls 
added as references. The dlls under lib.dll seemed to automatically get 
carried over to the main project, which makes sense.

My question relates to another type of item--a standalone .exe file that is 
called (via the Process class) from within lib.dll. What is the proper 
technique for including this in the main project? I tried adding it as a 
reference, but that failed as it is not a recognized assembly type. Should I 
attach this (somehow) to the lib.dll, so the main project automatically gets 
the executable? Or should the main project reference it directly for more 
flexibility? The only thing I have done so far is to have the .exe file on my 
disk in the search path, so when I run the main project it finds it and 
executes successfully.
I'm assuming that when you say " it is not a recognized assembly type" that 
you mean it is not a managed executable. If so, there is no need to 
reference it at all. Just include it in the project.
Hmm, let me try to ask my question another way. Say I've got lib.dll that I 
want to make available as open source. One class inside lib.dll requires 
prog.exe to run. Clearly I cannot put prog.exe inside lib.dll, so the 
distribution of lib.dll will then have to be a zip file (or other installer) 
that contains the 2 files lib.dll and prog.exe. What instructions do I give 
the user for where to put prog.exe? Is it simply a matter of putting it in 
the same directory as lib.dll? Or does it need to be on the user's search 
I'm not following you. It sounds to me like you answered it for yourself. If 
you include the .exe file in an installer, the installer can put it wherever 
it needs to be. In fact, the most logical place to put it would probably be 
in the same folder as the DLL, unless for some reason you feel that the DLL 
has to be installed in the GAC. If not in the GAC, the DLL will be in the 
executing assembly's folder, and that is where the .exe should be, most 
likely. Otherwise, as I said, have the installer put it where it needs to 

If using a Zip file, and having the user do the installation, you would need 
to do the same thing for the user that you would do with an installer: 
instruct the user where to install both files.