我有一个ASP.NET Web应用程序,该应用程序对“ C: core utils.varia.dll”的引用。还有另一个使用此dll的签名版本的DLL('c: coruences utils.varia.signed.dll')。

现在在我的ASPX中,我有以下Imports指令:<%@ import namespace =“ utils.varia”%>

此页面使用utils.varia.stringextensions ExtensionClass的字符串扩展名。

但是在运行时我会收到以下错误:

汇编错误

描述:在为该请求提供服务所需的资源时,发生了错误。请查看以下特定错误详细信息,并适当修改您的源代码。

编译器错误消息:CS0121:呼叫在以下方法或属性之间是模棱两可的:'concentra.utils.stringextensions.toshortreadablestring(string,int)'和'concentra.utils.stringextensions.toshorextens.toshorreadablestread(string,int)'''''

因此,我的猜测是编译器不知道是从签名或常规DLL中采用扩展方法。

这个假设是否正确,如果是这样,我该如何将其指向正确的DLL?

编辑
奇怪的是,此编译器错误仅发生在ASPX文件中的代码上。如果我在CodeBehind中使用相同的功能,则一切都按预期工作。有人可以解释一下吗?

另外,我不能仅仅引用签名版本,因为实际使用签名版本是例外,所有其他组件都使用未签名(显然是1个)。

有帮助吗?

解决方案

当默认情况下,.NET使其易于避免时,似乎您遇到了很多麻烦。为什么在同一应用程序中引用了同一组件的两个版本?

您需要删除其中一个引用(很可能必须是被删除的未签名),并且只需使用代码即可。或更改另一个,以使其代码不同。

其他提示

更改Web应用程序以引用签名版本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top