能力值:
(RANK:1170 )
|
-
-
2 楼
报错貌似是因为没有加载.net环境
写个纯托管或混合编译的loader应该就可以,这样loader本身运行时就已经加载.net环境了。
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
loader使用C#写的啊。怎么加在.net环境呢?
|
能力值:
(RANK:1170 )
|
-
-
4 楼
C#的程序运行后就自动加载了。
那说明不是这个问题,可能是被load的程序本身有一些dll没有定位到
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
对啊。程序单独运行的时候它可以找到相应目录下的dll程序集,但是当用loader调用时,却只能找到程序根目录下的程序集。不知道这个是为什么。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
把loader和原程序集放在一个目录下试试哈
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
可以注册一个AppDomain.CurrentDomain.AssemblyResolve事件,当目标程序集找不到引用的DLL时会触发该事件,然后你帮助程序找到该dll即可。
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
return Assembly.LoadFile("xxxx.dll");
}
不过搂主理解的loader好像和我理解的loader有区别,搂主的意思就是通过反射来调用一个程序集,而我理解loader为:可以获得被调用程序运行过程中的内部信息,就像Tracker工具一样,可以监控事件之类的。
|
能力值:
(RANK:210 )
|
-
-
8 楼
楼上是写壳的
|
能力值:
(RANK:1170 )
|
-
-
9 楼
看来.net下的loader含义又有扩展了:传统层次的和.net层次的。不过还是有机的统一。
|
能力值:
( LV3,RANK:20 )
|
-
-
10 楼
我也不知道具体定义是什么,只是个人感觉loader的翻译为“加载”,比“调用”要准确些。心血来潮,随便胡扯的,还望大侠批评!
|
能力值:
( LV4,RANK:50 )
|
-
-
11 楼
多谢楼上指点。我再研究研究
|
能力值:
( LV9,RANK:250 )
|
-
-
12 楼
仅仅反射出main函数,就能运行程序?不行吧
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
学习,还真不知道loader是干什么的
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
啊?这么理解?我原来的理解就是Fetion用的那个loader,用来脱离clr的东西
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
我的感觉也是这样,那有没有一种类似飞信这样的loader,可以自己指定想用环境的路径,而不是像现在这样只能用dotnetVM里面的.就是飞信的loader的源码思想是怎么样的?可不可能有人指点一二.在调用rsdeploy.dll下自己指定所用环境的路径.
|
|
|