繁体   English   中英

无法加载文件或程序集asp.net

[英]Could not load file or assembly asp.net

我们公司最近进行了一些身份验证更改,我们应该在所有应用程序中更改身份验证系统。 我们有一个dll(Auth.dll),它具有关于身份验证的这种逻辑。 我们所有的应用程序都具有这些Auth.dll文件,并使用相同的逻辑进行身份验证。

我们的策略是仅修改dll以使用新的身份验证逻辑。 方法签名保持不变,因为这些是我们在所有应用程序中从其他地方调用的方法。

我们公司有一个存档应用程序(基于.Net framework 2.0构建),仍有一些用户在使用。这些存档应用程序的问题是我们没有源代码。 因此,我只是尝试创建一个新的dll并将其替换在托管旧dll的位置的生产服务器上。 其他一切保持不变。

我使用框架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程序集的引用。

任何想法可能有什么问题吗?

谢谢

您可以通过使用类似http://ilspy.net/的方式轻松获取dll的源代码,这将使您可以获取源代码并重新编译。 我一直很难跟踪这些类型的问题,但是再次使用ILSPY,您应该能够看到Auth.dll所引用的所有DLL。

作为绝对不得已的方法,您可以使用sysinternals中的一些工具来查看加载时在硬盘驱动器上正在访问的内容,以查看参考dll是否根本不存在。 希望这可以帮助。

您是否在gac中注册了auth.dll,或将其放置在归档应用程序的bin文件夹中?

同样,如果存档应用程序正在引用旧的auth.dll,则新的签名将需要与旧的完全匹配,并且我的意思是它是完整的限定类型名称。

例如

Auth, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ae1958e6e8b32d9c

现在需要与以前相同。

或者,您必须按照punkcoder的建议进行操作,并使用ILSpy重建源,或者使用ILDASM并更改引用和ILASM以将其放回原处。

您是否在C:\\Windows\\assembly并找到该程序集? 否,您必须安装或获取相同版本的组件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM