Hi, and thanks in advance for the help.
I'd like to develop a totally standalone executable, that doesn't have
any accompanying DLLs or resource files (ie. I can distribute the
application is the .exe alone).
Now, I handle the resources (ex. a tab-separated data file) by
including them in the project as embedded resources, and opening them
as strems by GetManifestResourceStream. However, here is my problem (it
stems from the fact that I'm using the PowerPoint Interop library):
When I compile the assembly, 3 DLLs are output along with the EXE
(Interop.Office.dll, etc...). Is there some way I can compile them into
the exe One hack I thought of would be to include them as embedded
resources, and then extract them to the disk in the main() function,
before anything else happens -- unfortunately, this means I have to
assume the end-user has write permissions on their disk (which I don't
want to, since I'd like the application to be run off, say, a CD).
What can I do
Thanks!
Dan

Single-file executable (no DLLs)
CE31572
- Merga an .exe and a .dll into one .exe
- Merging .NET assemblies using ILMerge
- Post build step static linking tool for C#, using ILMerge
Only remember that ILMerge not work with Rotor or Mono!I geus you can also put the .dll's into you exe yourself and handle the AppDomain.AssemblyResolve event. But i espected some problems with using that event for the System.Xml assembly.
You can also take a look at .NETZ that will pack one or more .dll's into one assembly and also compresses it! Find the tool here.
Roxana Ungureanu
It is recommended that you do not re-distribute Microsoft Office2003 primary interop assemblies. By installing your own version you can disable the licensing of the user's office software causing a lot of problems. You can package with your own msi the official Office2003 redistributable primary interop assemblies here:
http://www.microsoft.com/downloads/details.aspx FamilyId=3C9A983A-AC14-4125-8BA0-D36D67E0F4AD&displaylang=en
smc750
Bob Villa
1. Dynamic assembly loading might fail.
2. Patching or upgrading will require the whole executable to be replaced.
Cheers,
Aaron