CsvHelper
CsvHelper copied to clipboard
Unhandled Exception: System.TypeLoadException: Could not load type 'System.ValueTuple`2' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
my environment
- use rider develop
- develop computer is win11
error
There is no problem with the computer I developed, but on another Windows Server 2016 Standard, the following error is reported:
Unhandled Exception: System.TypeLoadException: Could not load type 'System.ValueTuple`2' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
at CsvHelper.CsvReader..ctor(IParser parser)
at CsvHelper.CsvReader..ctor(TextReader reader, CultureInfo culture, Boolean leaveOpen)
Windows Server 2016 Standard .Net Version:
my code
using (var reader = new StreamReader("2.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
// var records = csv.GetRecords<Foo>();
// records = records.ToList();
csv.Read();
csv.Read();
csv.Read();
// csv.Read();
csv.ReadHeader();
var records = new List<Foo>();
while (csv.Read())
{
var record = csv.GetRecord<Foo>();
records.Add(record);
Console.WriteLine($"{record.Id}, {record.Name}, {record.Result}");
// Do something with the record.
}
}
I've seen this sort of error a couple of times - my guess is that installing .NET Framework 4.7.2 (or higher) on the server should do the trick.
@FrankNanninga Do you know why that would be?
I have these settings for net45
.
<!-- .NET 4.5 -->
<ItemGroup Condition="'$(TargetFramework)' == 'net45'">
<PackageReference Include="Microsoft.CSharp" Version="4.3.0" />
<PackageReference Include="System.Memory" Version="4.5.0" />
<PackageReference Include="System.ValueTuple" Version="4.3.0" />
</ItemGroup>
It look like net45
is covered.
https://www.nuget.org/packages/System.ValueTuple/4.3.0#supportedframeworks-body-tab