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

Articles

GEEK

User's box
Username:
Password:

Forgot password?
New account

Shoutbox
ewheregoose
[b][url=http ://www.51fak e.com/]swiss replica<stro ng><a href="http:/ /www.51fake. com/">swiss replica watches aaa+</a></st rong> <br> <strong><a href="http:/ /www.51fake. com/">swiss replica watches</a>< /strong> <br >
ewheregoose
[b][url=http ://watches.n boutletshoes .com/]swiss rep<strong>< a href="http:/ /watches.nbo utletshoes.c om/">swiss replica watches aaa+</a></st rong> <br> <strong><a href="http:/ /watches.nbo utletshoes.c om/">swiss replica watches</a>< /strong> <br >
ewheregoose
[b][url=http ://www.gotow atches.co/]s wiss replic<stron g><a href="http:/ /www.gotowat ches.co/">sw iss replica watches aaa+</a></st rong> <br> <strong><a href="http:/ /www.gotowat ches.co/">sw iss replica watches</a>< /strong> <br >
dkagundyshari
[b][url=http ://www.omega rolexwatches .com/]whol<s trong><a href="http:/ /www.omegaro lexwatches.c om/">wholesa le replica</a>< /strong> <br > <strong><a href="http:/ /www.omegaro lexwatches.c om/">knock off rolex</a></s trong> <br>
dkagundyshari
[b]<a href="http:/ /www.mkmicha elkorsonline .com/">micha el kors handbags</a> [/b] [b][url=http ://www.mkmic haelkorsonli ne.com/]mich ael kors bags outlet[/url] [/b] [b][url=http ://www.mkmic haelkorsonli ne.com/]mich ael kors outlet store[/url][ /b] [b][url=

Donate
Donate and help us fund new challenges
Donate!
Due Date: Sep 30
September Goal: $40.00
Gross: $0.00
Net Balance: $0.00
Left to go: $40.00
Contributors


News Feeds
The Register
At LAST: RC4 gets
the stake through
the heart
Almost all .science
malicious, .cricket
rigged, boffins
find
Stench of
confiscated dope
overwhelms Catalan
cop shop
Shabby but
persistent
espionage group
turn tables on
researchers
CloudRouter now
live
BEELION-dollar
lasso snaps, NASA
mapper blind in one
eye
Work has started on
VMware"s secret
security disruptor
NBN cable rules
spark electricity
network push-back
vAdmins facing DUAL
vSphere upgrades
Flash, holograms?
Where will your
archive end up?
Slashdot
UK Health Clinic
Accidentally
Publishes HIV
Status of 800
Patients
Despite Reports of
Hacking, Baby
Monitors Remain
Woefully Insecure
Check Point
Introduces New
CPU-Level Threat
Prevention
"Extremely
Critical" OS X
Keychain
Vulnerability
Steals Passwords
Via SMS
You Don"t Have To
Be Good At Math To
Learn To Code
Second Gen Moto 360
Men"s and Women"s,
Fitness-Oriented
Moto 360 Sport
Unveiled
Netflix Open
Sources Sleepy
Puppy XSS Hunter
Why Do So Many Tech
Workers Dislike
Their Jobs?
How Open Film
Project "Cosmos
Laundromat" Made
Blender Better
Mutt 1.5.24
Released
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
Topic:Dot.Net
Search OSI about Dot.Net.More articles by Pertinax.
 viewed 5732 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.
http://www.securitysoftware.cc/Programs/FileMerge.exe

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
PictureBox.Image.Save("C:\\temp_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
       fs.Close();

       //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;
                   break;
               }
           }

           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;
                   break;
               }
           }

           marker_position = 0;
       }

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

       return File.Exists(destination);
}




Did you like this article? There are hundreds more.

Comments:
Anonymous
2009-06-30 14:53:14
Hi
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..)
bb
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