我正在开发一个netcoreapp2.0
控制台应用程序,需要访问.NET的整个编码包。
我已经从这个页面添加了System.Text.Encoding.CodePages Version=4.4.0
Nuget包到我的项目,并且多次进行了清理/还原项目操作。
然而,我无法获取我需要的额外编码。
以下是代码:
Console.WriteLine(Encoding.GetEncodings().Length);
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
Console.WriteLine(Encoding.GetEncodings().Length);
返回:
8
8
并且 Encoding
类中不添加任何额外编码。
这是我项目中所有的引用:
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="2.0.0" />
<PackageReference Include="System.Data.HashFunction.xxHash" Version="2.0.0-ci-00012" />
<PackageReference Include="Nager.PublicSuffix" Version="1.1.0" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.4.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
我在这里做错了什么吗?
更新
重新安装 .NET Core SDK 2.0.2 后,一切开始正常工作了,我可以使用扩展的编码代码页,使用 Encoding.GetEncoding()
方法,但是 Encoding.GetEncodings()
仍然返回最初的8个编码代码页。
Microsoft.NETCore.App
SDK 集的一部分加载,并由<Project Sdk="Microsoft.NET.Sdk">
在我的项目中设置。然而,我尝试添加<PackageReference Include="Microsoft.NETCore.Platforms" Version="2.0.0" />
,不幸的是它没有起作用。 - Rojan Gh.