【发布时间】:2021-08-25 20:27:01
【问题描述】:
服务器 2016 上的 IIS 网站。
using System.Text
string x = "abcdefg";
byte[] y = Encoding.UTF8.GetBytes(x);
结果:
Compiler Error Message: CS0117: 'Encoding' does not contain a definition for 'UTF8'
不是在抱怨“Encoding”未定义,而是在 Encoding 类中的 .UTF8 未定义。
在我自己在 Visual Studio 中运行 IIS Express 的桌面上运行良好,但在部署到服务器时,会出现上述错误消息。
我的本地开发机器有:.NET Framework 4.7.2
服务器只有 Microsoft .NET Runtime 5.0.9 和 Microsoft ASP.NET Core 5.0.9。事实上,服务器没有安装任何版本的 .NET Framework,但所有其他 Web 应用程序(我的和其他的)都可以正常工作。
我可以在 .NET Runtime 5 旁边安装和运行 .NET Framework 4.7 吗?首先应该有必要吗? .NET Runtime 5 不包含 Encoding.UTF8 吗?
谢谢。
编辑:这段代码没有任何问题。这是一个框架依赖或相互关系的问题。
【问题讨论】:
-
你必须在某个地方公开分享整个项目。仅仅上面的代码 sn-p 远远不足以显示上下文。
-
请查看minimal reproducible example 发布代码指南。没有人知道,但您知道您将哪个变量命名为
Encoding,或者可能其他随机代码定义了Encoding命名空间/类。 -
好悲痛。 Encoding 类自 1.0 版以来一直位于 .NET System.Text 命名空间中。