在开发的时候,需要用到一个第三方的DLL(托管程序集),我用“添加引用”的方式使用了该程序集。
这样做的后果就是:应用程序要和这个第三方DLL放在一个目录下。假设我事先知道,在运行该程序的机子上的某个位置肯定可以找到此程序集,那么有没有什么办法可以做到:只拷贝这个程序过去即可运行?
我知道有个反射,但我不想用它。因为这样会有性能的损失。还有另外一个小问题,我还没有测试:
这个程序集是对另一个(或几个)非托管dll库的封装,我已经对另外的库(.lib、.dll)的目录做好了环境变量(Path),上述问题的实现,不会影响这个第三方DLL对这些非托管库调用吧?
这样做的后果就是:应用程序要和这个第三方DLL放在一个目录下。假设我事先知道,在运行该程序的机子上的某个位置肯定可以找到此程序集,那么有没有什么办法可以做到:只拷贝这个程序过去即可运行?
我知道有个反射,但我不想用它。因为这样会有性能的损失。还有另外一个小问题,我还没有测试:
这个程序集是对另一个(或几个)非托管dll库的封装,我已经对另外的库(.lib、.dll)的目录做好了环境变量(Path),上述问题的实现,不会影响这个第三方DLL对这些非托管库调用吧?
但这样存在问题,只能在我开发的机器上正常工作,在运行的机器上,由于运行机器的程序集不在GAC,也没有密钥文件,是不能正常工作的吧。
虽然加载时仍是使用反射,但加载后则如常规引用的程序集几乎一样。