C#动态加载程序集问题 高分求解

C#动态加载程序集问题 高分求解,第1张

我先说下你想要的结果,你把Assembly.LoadFrom换成Assembly.LoadFile即可。

另外,你既然能够在你的应用中使用Assembly.LoadFrom这样的方法,那test1.dll他们的路径就是已知的了,何必还要通过反射程序集内部方法来获取它的Location呢?

如果你是将test1.dll注册到了全局环境中,那么我建议你不要使用LoadFrom和LoadFile,改用Load方法:将test1和test2通过版本号或者公钥(PublicKey)加以区别,然后用Load方法调用。调用参数类似于:“程序集名,Version=版本1,culture=区域信息1,PublicKeyToken=公钥1”,这是微软标准的做法。

今天我也遇见这个问题,最终的解决方法如下:找到VS的缓存保存文件夹,将文件夹下面的东西全部删除掉,然后就不会出错了。C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\89ae99e4\e0eff96a\assembly\dl3

解决办法如下:

1、在项目的引用目录里添加,rebuild 运行项目。

2、如果1不能解决问题,那么可以选中项目project,点击鼠标右键,选择属性,在引用路径下,查看右侧的引用路径是否正确,如果不正确,remove掉,重新添加即可,rebuild 运行项目。

3、如果上述两个步骤还是没有解决问题,那么就需要注册一下程序集。

(1)、以管理员身份进入CMD命令提示框。

(2)、找到VS版本的注册程序集工具,如果Framework2.0默认安装的则是这个目录下:C:\Windows\Microsoft.NET\Framework\v2.0.50727,找到RegAsm工具。

(3)、将工具的路径输入CMD命令框 ,并且输入工具名称regasm,按空格,写上程序的dll路径。

(4)、rebuild项目。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11124278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存