可能重复:
.NET windows application, can it be compressed into a single .exe?
我有一个项目,我在这个项目中使用了很多.dll文件。当我尝试在另一台计算机上运行我的项目时,它无法正常工作。因为我只使用.exe。我想我必须制作安装项目。但我想在不进行设置项目的情况下运行我的程序。如何将.dll文件嵌入到我的exe中? 我正在使用Visual Studio 2010。 顺便说一句,对不起我的英语,但谷歌翻译英语比我的更糟糕。 感谢。
答案 0 :(得分:1)
您只需将带有exe文件的dll文件复制到同一目录中即可。 你可以使用ILMerge util
您可以从msdn
下载答案 1 :(得分:1)
答案 2 :(得分:0)
在Visual Studio中右键单击您的项目,选择Project Properties - >资源 - >添加资源 - >添加现有文件... 并将以下代码包含在App.xaml.cs或同等代码中。
public App()
{
AppDomain.CurrentDomain.AssemblyResolve +=new ResolveEventHandler(CurrentDomain_AssemblyResolve);
}
System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string dllName = args.Name.Contains(',') ? args.Name.Substring(0, args.Name.IndexOf(',')) : args.Name.Replace(".dll","");
dllName = dllName.Replace(".", "_");
if (dllName.EndsWith("_resources")) return null;
System.Resources.ResourceManager rm = new System.Resources.ResourceManager(GetType().Namespace + ".Properties.Resources", System.Reflection.Assembly.GetExecutingAssembly());
byte[] bytes = (byte[])rm.GetObject(dllName);
return System.Reflection.Assembly.Load(bytes);
}
这是我原来的博文: http://codeblog.larsholm.net/2011/06/embed-dlls-easily-in-a-net-assembly/