[英]Which dll will aspx compiler use when a dll is referenced one but multiple versions exist in bin folder
我有一个ASP.NET Web应用程序,该应用程序具有对“ C:\\ references \\ Utils.Varia.dll”的引用。 引用了另一个dll,它使用该DLL的签名版本(“ C:\\ references \\ Utils.Varia.Signed.dll”)。
现在,在我的aspx中,我具有以下导入指令:<%@ Import Namespace =“ Utils.Varia”%>
此页面使用Utils.Varia.StringExtensions扩展类的字符串扩展名。
但是在运行时,出现以下错误:
编译错误
说明:编译服务于此请求所需的资源期间发生错误。 请查看以下特定的错误详细信息,并适当地修改您的源代码。
编译器错误消息:CS0121:下列方法或属性之间的调用不明确:'CONCENTRA.UTILS.StringExtensions.ToShortReadableString(string,int)'和'CONCENTRA.UTILS.StringExtensions.ToShortReadableString(string,int)'
因此,我的猜测是编译器不知道是从带符号的dll还是从常规的dll采用扩展方法。
此假设是否正确?如果正确,我如何将其指向正确的dll?
[编辑]
奇怪的是,此编译器错误仅发生在aspx文件中的代码上。 如果我在后面的代码中使用相同的功能,那么一切都会按预期进行。 有人可以解释一下吗?
另外,我不能只引用签名版本,因为实际上使用签名版本是个例外,所有其他组件都使用unsigned(显然是1除外)。
更改Web应用程序以引用已签名的版本。
在默认情况下,.NET可以轻松地避免使用它,因此有意在应用中重新创建“ DLL Hell”时,您会遇到很多麻烦。 为什么在同一应用程序中引用了同一程序集的两个版本?
您需要删除这些引用之一(最有可能的是,它必须是被删除的未签名的引用),然后仅使用其中的代码即可。 或更改另一个,使其代码不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.