无法加载文件或程序集asp.net
本文关键字:程序集 asp net 文件 加载 | 更新日期: 2023-09-27 18:28:18
我们公司最近发生了一些身份验证更改,我们应该更改所有应用程序中的身份验证系统。我们有一个dll(Auth.dll),它具有关于身份验证的逻辑。我们所有的应用程序都有这些Auth.dll文件,并使用相同的逻辑进行身份验证。
我们的策略是只修改dll以使用新的身份验证逻辑。方法签名保持不变,因为这些是我们在所有应用程序中从其他地方调用的方法。
我们公司有一个存档应用程序(构建在.Net framework 2.0上),少数用户仍在使用。这些归档应用程序的问题是我们没有源代码。所以我只是想创建一个新的dll,并在旧dll所在的生产服务器上替换它。其他一切都保持不变。
我使用framework 2.0创建了新的dll。我已经对它进行了单元测试,运行良好。我得到的问题是-
Could not load file or assembly 'Auth, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ae1958e6e8b32d9c' or one of its dependencies. The system cannot find the file specified.
我检查了新Auth.dll上的公钥令牌,它看起来不错。版本看起来也不错。Auth dll仅引用了4个.Net framework 2.0程序集。
知道可能出了什么问题吗?
感谢
您可以通过使用以下方法轻松获取dll的源代码http://ilspy.net/,这将允许您获取源代码并重新编译。我一直很难追踪这些类型的问题,但如果你使用ILSPY,你应该能够看到Auth.DLL引用的所有DLL。
作为绝对的最后手段,您可以使用sysinternals中的一些工具来查看加载时硬盘上访问的内容,以查看引用dll是否不存在。希望这能有所帮助。
您是在gac中注册auth.dll,还是将其放在归档应用程序bin文件夹中?
此外,如果存档应用程序引用了旧的auth.dll,那么新的auth.dll的签名将需要与旧的完全匹配,我的意思是它是完全限定的类型名。
例如
Auth, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ae1958e6e8b32d9c
现在需要和以前一样。
或者,您将不得不按照punkcoder的建议,使用ILSpy重建源代码,或者使用ILDASM并更改引用和ILASM以将其重新组合在一起。
是否在C:'Windows'assembly
中搜索并找到程序集?如果没有,您必须安装或获得相同版本的组件。