27746 total geeks with 3539 solutions
Recent challengers:
 Welcome, you are an anonymous user! [register] [login] Get a yourname@osix.net email address 



User's box

Forgot password?
New account

[b][url=http ://www.imahn ahome.com/]s wiss replic<stron g><a href="http:/ /www.imahnah ome.com/">sw iss replica watches aaa+</a></st rong> <br> <strong><a href="http:/ /www.imahnah ome.com/">sw iss replica watches</a>< /strong> <br >
<strong><a href="http:/ /www.imahnah ome.com/">sw iss Mechanical movement replica watches</a>< /strong> | <strong><a href="http:/ /www.imahnah ome.com/">wa tches</a></s trong> | <strong><a href="http:/ /www.imahnah ome.com/">sw iss Mechanical movement replica watc
[b][url=http ://www.repli cawatcheslov e.co/]swiss rep<strong>< a href="http:/ /www.replica watcheslove. co/">swiss replica watches aaa+</a></st rong> <br> <strong><a href="http:/ /www.replica watcheslove. co/">swiss replica watches</a>< /strong> <br >
<ul><li><str ong><a href="http:/ /www.replica watcheslove. co/">high quality replica watches</a>< /strong> </l i><li><stron g><a href="http:/ /www.replica watcheslove. co/">watches </a></strong > </li><li>< strong><a href="http:/ /www.replica watcheslove. co/">swiss Mech
[b][url=http ://www.moncl eroutletlove .org/]monc<s trong><a href="http:/ /www.moncler outletlove.o rg/">moncler sale</a></st rong> <br> <strong><a href="http:/ /www.moncler outletlove.o rg/">moncler outlet store</a></s trong> <br>

Donate and help us fund new challenges
Due Date: Nov 30
November Goal: $40.00
Gross: $0.00
Net Balance: $0.00
Left to go: $40.00

News Feeds
The Register
have landed so
double your RAM
cram plan
Samsung Gear VR is
good. So
good 2016 could
finally be the year
virtual reality
Researcher reveals
Chinese e-crime
shopping list
Capita increases
share of public
sector revenue to
measly 1.8bn
Mozilla annual
report shows risky
Google dependency
now risky
Lenovo slings
privilege patches
at in-built tools
Green rectangles
are the new rounded
Indian scientists
teach computers to
see by watching
Lazy IoT, router
makers reuse
skeleton keys over
and over in
thousands of
devices ? n
Nest defends web
CCTV Cam amid
unstoppable 24/7
surveillance fears
IT Execs On Their
Dream Dinner Guests
Japanese Rocket
Launches Its First
Critical Zen Cart
Vulnerability Could
Spell Black Friday
Disaster For
Why Car Salesmen
Don"t Want To Sell
Electric Cars
Scientists Produce
Graphene 100 Times
Cheaper Than Ever
Insurer Refuses To
Cover Cox In
Massive Piracy
New Wearable Tech
Translates Sign
Language Into Text
This Gizmo Knows
Your Amex Card
Number Before
You"ve Received It
Will You Be Able To
Run a Modern
Desktop Environment
In 2016 Without
The Quest For the
Ultimate Vacuum
Article viewer

Included Dlls with your exe without needing an install

Written by:Pertinax
Published by:Codybob90
Published on:2009-05-06 18:18:31
Search OSI about Dot.Net.More articles by Pertinax.
 viewed 6095 times send this article printer friendly

Digg this!
    Rate this article :
I created a WinForms utility that depended on some DLLs and wanted the user to be able to just download and click on the exe to run the app. Usually if your exe needs some other files you wrap things up into a package and the user has to go through an install process. This takes time and forces the user to unistall if they don't want the program after it's served its purpose. I didn't like this and found a way to embed the files I needed into my exe and extract and link them when the program ran.

.Net won't let you include a dll as a resource. The way around this is to push your dll into an image and include the image in the exe. If you skip the image header .net won't complain. You just need to mark the beginning and end of the dll binary data so you know where to start and stop when extracting it.

Here is a program I wrote that makes it easy to push your file into an image.

Once you have done this you can use the following methods to save the image to a file and then extract the dll from the image.

//Save image to a file

//Extract the dll
ExtractFile("C:\\temp_file", "C:\\MyDll.dll", "^^^^^^^^^^", "**********");

//This method extracts the dll from the image file and saves it with the name given
public static bool ExtractFile(string sourceFile, string destination, string startMarker, string endMarker)

       int filestart = 0;
       int fileend = 0;

       int marker_position = 0;

       FileInfo finfo = new FileInfo(sourceFile);

       FileStream fs = new FileStream(sourceFile, FileMode.Open);

       //Create Buffer
       byte[] buff = new byte[finfo.Length];

       //Read file contents
       fs.Read(buff, 0, (int)finfo.Length);

       //Close file

       //Get file start position
       for(int bytecnt = 0; bytecnt < buff.Length; bytecnt++)
           //Look for startMarker
           while (buff[bytecnt + marker_position] == startMarker[marker_position++])
               if (marker_position == startMarker.Length)
                   filestart = bytecnt + marker_position;

           marker_position = 0;

       //Find end position
       for (int bytecnt = filestart; bytecnt < buff.Length; bytecnt++)
           //Look for startMarker
           while (buff[bytecnt + marker_position] == endMarker[marker_position++])
               if (marker_position == startMarker.Length)
                   fileend = bytecnt;

           marker_position = 0;

       //Save to file
       fs = new FileStream(destination, FileMode.Create);
       fs.Write(buff, filestart, fileend - filestart);

       return File.Exists(destination);

Did you like this article? There are hundreds more.

2009-06-30 14:53:14
This is very good idea to let end user free from installations and addins... but when you programming in .Net the user must install the .Net framework first. anyway take a look at product named thinstall or vmware virtualisation suit you may find them useful too.
Anonymously add a comment: (or register here)
(registration is really fast and we send you no spam)
BB Code is enabled.
Captcha Number:

Blogs: (People who have posted blogs on this subject..)
ASP.NET RadioButton GroupName when inside a Repeater on Sun 10th Jun 8am
I was thankful on finding this nugget of code, which makes the groupname work out when slamming in radiobuttons in an asp.net repeater. http://www.codeguru.com/csharp/csharp/cs _controls/custom/article.php/c12371/

Your Ad Here
Copyright Open Source Institute, 2006