我有一个 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 文件中的代码上。如果我在代码隐藏中使用相同的功能,一切都会按预期工作。有人可以解释一下吗?
此外,我不能只引用签名版本,因为实际使用签名版本是例外,所有其他组件都使用未签名版本(显然除了 1 )。