我可以在exe中包含dll(在Visual Studio中)吗?

时间:2009-01-25 00:55:07

标签: visual-studio dll include release exec

  

可能重复:
  .NET windows application, can it be compressed into a single .exe?

要运行我的应用程序,我需要位于Debug和Release文件夹中的AxInterop.WMPLib.dllInterop.WMPLib.dll。有没有办法将这些dll包含在exe中,这样我的应用程序只能在一个文件中使用?

6 个答案:

答案 0 :(得分:19)

只要您的DLL是.NET程序集,那么ILMerge应该能够将您的exe及其所有依赖项组合到一个文件中。

答案 1 :(得分:4)

您可以使用boxedapp或thinstall等工具......

答案 2 :(得分:4)

我也推荐boxedapp。这是一个很棒的应用程序!

答案 3 :(得分:0)

将它们包含在嵌入式中。然后,您可以在运行时提取它们。

答案 4 :(得分:0)

是的,我省略了编写文件的代码......

FileStream so=new FileStream("c:\\\wherever\\\x.dll",FileMode.Create);

so.Write(buf,0,ssize);

so.Close();

无需额外的公用事业。

答案 5 :(得分:-2)

例如,将x.dll添加到项目中并将其Build Action设置为Embedded Resource。

提取:

 string AppPath=Assembly.GetExecutingAssembly().Location;
 Assembly ThisAssembly=Assembly.LoadFrom(AppPath);
 System.IO.Stream fs=ThisAssembly.GetManifestResourceStream("yourproectname.x.dll");
 int ssize=(int)fs.Length;
 byte [] buf=new byte[ssize];
 fs.Read(buf,0,ssize);
 fs.Close();