我有一个带有帮助页的Web 2项目,它在本地运行良好,但是当我将它推到Azure时会抛出这个错误:
方法未找到:'System.String System.String.Format (System.IFormatProvider,System.String,System.Object)
我暂时关闭了自定义错误,以便可以看到完整的堆栈跟踪这里。
错误起源于这一行代码:
字符串selectExpression = String.Format(CultureInfo.InvariantCulture,MethodExpression,String.Format)
见第96行这里
完整的源代码可在GitHub上使用。
我甚至不知道这个该怎么做。
发布于 2015-05-31 16:19:11
根据它的MSDN页面,您使用的重载只支持.NET 4.6。
要么将主机配置为运行.NET 4.6,要么将项目的目标框架更改为4.5并重新编译。
在4.5中,将选择[params object[]重载](https://msdn.microsoft.com/en-us/library/vstudio/1ksz8yb7(v=vs.110%29.aspx),而不必更改代码。
发布于 2015-10-14 15:29:14
这没道理。从2009年起,我们的应用程序中就有这样一行代码
String.Format(CultureInfo.CurrentCulture, "You must specify a new password of {0} or more characters.", _membershipService.MinPasswordLength);
最近,我们将这个项目提高到了.NET 4.6,现在,至少对我来说,这一行出现了同样的错误。因此,很明显,新的过载正在破坏某些东西,而这种方法并不是新的。
发布于 2016-02-04 09:01:56
如果您既不能将主机升级到4.6,也不能将项目降级到4.5,那么就有一个解决办法:将"object[]“作为args传递,而不是"object”。因此,您将强制使用"params object[]“重载。例子:
return string.Format(formatProvider, "{0:" + format + "}", new object[] { value });https://stackoverflow.com/questions/30558827
复制相似问题