请问如何把一个exe添加到资源中,在使用时运行??????????????????
如题:比如做好的程序在运行时,检测到环境缺少一个exe文件,就从资源中提取保存,并运行程序,
或者是直接从资源中提取并运行。。。
最好给段代码。。。3Q.... --------------------编程问答-------------------- 将exe包括在项目中,
生成操作那里选-》潜入的资源 --------------------编程问答-------------------- ...这个,有点病毒的倾向了 --------------------编程问答-------------------- System.Reflection;
用法,将资源读出到Stream流中,然后使用.
Assembly assembly = GetType().Assembly;
System.IO.Stream streamSmall = assembly.GetManifestResourceStream("NameSpace.Folder.FileName"); --------------------编程问答-------------------- 恩,我写过个类似的东西
把程序嵌入资源到另一个程序里
然后ls的方法读出来 --------------------编程问答-------------------- alextsln(以泪洗面)
...这个,有点病毒的倾向了
对,是有点象病毒。
呵呵,不过不是干坏事。
一个exe比一堆exe感觉好一些。
记得看到一篇帖子,可以不保存成文件直接从资源读取运行。可是忘记了
--------------------编程问答-------------------- 不保存成文件直接从资源读取运行
-------------------------------
麻烦你找到一定一分享出来啊 --------------------编程问答-------------------- (銘龘鶽)说“不读出来保存成exe,执行是不可以的”
不过事实说明是不对的,鼓捣了一阵,辛苦没有白费,可以直接执行
作为资源嵌入的可执行文件,目前可以调用嵌入可执行文件的Main方法,
从而达到执行嵌入可执行文件的目的。
有兴趣的兄弟可以看看我的代码,欢迎讨论:
Stream streamObj = this.GetType().Assembly.GetManifestResourceStream("Test_ExeInResource.AllTest.exe");
byte[] b = new byte[streamObj.Length];
streamObj.Read(b, 0, b.Length);
Assembly a = Assembly.Load(b);
Type[] mytypes = a.GetTypes();
BindingFlags flags = (BindingFlags.NonPublic | BindingFlags.Public |
BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly);
foreach(Type t in mytypes)
{
MethodInfo[] mi = t.GetMethods(flags);
Object obj = Activator.CreateInstance(t);
foreach(MethodInfo m in mi)
{
if (m.Name == "Main")
{
MainDelegate md =
(MainDelegate)Delegate.CreateDelegate(typeof(MainDelegate), m);
md.BeginInvoke(null, null);
}
}
}
刚开始学,看不太明白。。。。
补充:.NET技术 , C#