Skip to content

Commit 15a8f22

Browse files
committed
fix: restore netstandard2.0 support for Mapster
Fixes #639 Includes packaging changes to ship a netstandard2.0 assembly again, plus test/CI updates to keep net48 tests running only on Windows.
1 parent 689850f commit 15a8f22

41 files changed

Lines changed: 241 additions & 116 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/Benchmark.Development/Benchmark.Development.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<AssemblyOriginatorKeyFile>Benchmark.Development.snk</AssemblyOriginatorKeyFile>
1111
<DelaySign>False</DelaySign>
1212
<SciVersion Condition="'$(SciVersion)' == ''">7.4.0</SciVersion>
13-
<LangVersion>12.0</LangVersion>
13+
<LangVersion>12</LangVersion>
1414
</PropertyGroup>
1515

1616
<ItemGroup>

src/Benchmark/Benchmark.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Project Sdk="Microsoft.NET.Sdk">
33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
5-
<TargetFramework>net9.0</TargetFramework>
5+
<TargetFramework>net10.0</TargetFramework>
66
<CopyLocalLockFileAssemblies Condition=" '$(Configuration)'=='Debug' ">true</CopyLocalLockFileAssemblies>
77
<DefaultItemExcludes>**/*.g.cs</DefaultItemExcludes>
88
</PropertyGroup>
@@ -19,11 +19,11 @@
1919
</Compile>
2020
</ItemGroup>
2121
<ItemGroup>
22-
<PackageReference Include="BenchmarkDotNet" Version="0.14.0" />
22+
<PackageReference Include="BenchmarkDotNet" Version="0.15.8" />
2323
<PackageReference Include="ExpressionDebugger" Version="2.2.1" />
2424
<PackageReference Include="ExpressionTranslator" Version="2.5.0" />
2525
<PackageReference Include="AutoMapper" Version="13.0.1" />
26-
<PackageReference Include="FastExpressionCompiler" Version="5.0.0" />
26+
<PackageReference Include="FastExpressionCompiler" Version="5.3.0" />
2727
</ItemGroup>
2828
<ItemGroup>
2929
<ProjectReference Include="..\ExpressionDebugger\ExpressionDebugger.csproj" />

src/Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@
2020
<PackageTags>Mapper;AutoMapper;Fast;Mapping</PackageTags>
2121
<PackageIcon>icon.png</PackageIcon>
2222
<IsPackable>false</IsPackable>
23-
<LangVersion>10</LangVersion>
23+
<LangVersion>12</LangVersion>
2424
</PropertyGroup>
2525
</Project>

src/ExpressionDebugger/ExpressionDebugger.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net10.0;net9.0;net8.0;</TargetFrameworks>
4+
<TargetFrameworks>net10.0;net9.0;net8.0;net48</TargetFrameworks>
55
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
66
<Authors>Chaowlert Chaisrichalermpol</Authors>
77
<Description>Step into debugging from linq expressions</Description>
@@ -14,12 +14,12 @@
1414
<AssemblyOriginatorKeyFile>ExpressionDebugger.snk</AssemblyOriginatorKeyFile>
1515
<Version>10.0.0-pre01</Version>
1616
<PackageLicenseUrl>https://github.com/chaowlert/ExpressionDebugger/blob/master/LICENSE</PackageLicenseUrl>
17-
<LangVersion>8.0</LangVersion>
17+
<LangVersion>12</LangVersion>
1818
<Nullable>enable</Nullable>
1919
</PropertyGroup>
2020

2121
<ItemGroup>
22-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.12.0" />
22+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="5.0.0" />
2323
</ItemGroup>
2424

2525
<ItemGroup>

src/ExpressionTranslator/ExpressionTranslator.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
4+
<TargetFrameworks>net10.0;net9.0;net8.0;net48</TargetFrameworks>
55
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
66
<Authors>Chaowlert Chaisrichalermpol</Authors>
77
<Description>Translate from linq expressions to C# code</Description>
@@ -17,15 +17,15 @@
1717
<PackageLicenseExpression>MIT</PackageLicenseExpression>
1818
<PackageIcon>icon.png</PackageIcon>
1919
<PackageLicenseUrl></PackageLicenseUrl>
20-
<LangVersion>8.0</LangVersion>
20+
<LangVersion>12</LangVersion>
2121
<Nullable>enable</Nullable>
2222
</PropertyGroup>
2323

2424
<ItemGroup>
2525
<None Include="icon.png" Pack="true" PackagePath="\" />
2626
</ItemGroup>
2727

28-
<ItemGroup>
28+
<ItemGroup Condition="'$(TargetFramework)' != 'net48'">
2929
<PackageReference Include="System.Runtime.Experimental" Version="6.0.2" />
3030
</ItemGroup>
3131
</Project>

src/Mapster.Async.Tests/AsyncTest.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,14 @@ public async Task AsyncError()
4545
}
4646
}
4747

48-
[TestMethod, ExpectedException(typeof(InvalidOperationException))]
48+
[TestMethod]
4949
public void Sync()
5050
{
5151
TypeAdapterConfig<Poco, Dto>.NewConfig()
5252
.AfterMappingAsync(async dest => { dest.Name = await GetName(); });
5353

5454
var poco = new Poco {Id = "foo"};
55-
var dto = poco.Adapt<Dto>();
56-
dto.Name.ShouldBe("bar");
55+
Should.Throw<InvalidOperationException>(() => poco.Adapt<Dto>());
5756
}
5857

5958
[TestMethod]

src/Mapster.Async.Tests/Mapster.Async.Tests.csproj

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net10.0;net9.0;net8.0;</TargetFrameworks>
4+
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
5+
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT' ">$(TargetFrameworks);net48</TargetFrameworks>
56
<IsTestProject>true</IsTestProject>
67
<IsPackable>false</IsPackable>
78
</PropertyGroup>
89

910
<ItemGroup>
10-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
11-
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
12-
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
11+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
12+
<PackageReference Include="MSTest.TestAdapter" Version="4.0.2" />
13+
<PackageReference Include="MSTest.TestFramework" Version="4.0.2" />
1314
<PackageReference Include="Shouldly" Version="4.2.1" />
1415
</ItemGroup>
1516

src/Mapster.Async/Mapster.Async.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net10.0;net9.0;net8.0;</TargetFrameworks>
4+
<TargetFrameworks>netstandard2.0;net10.0;net9.0;net8.0</TargetFrameworks>
55
<Description>Async supports for Mapster</Description>
66
<IsPackable>true</IsPackable>
77
<PackageTags>Mapster;Async</PackageTags>

src/Mapster.DependencyInjection.Tests/InjectionTest.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,12 @@ public void Injection()
3131
}
3232
}
3333

34-
[TestMethod, ExpectedException(typeof(InvalidOperationException))]
34+
[TestMethod]
3535
public void NoServiceAdapter_InjectionError()
3636
{
37-
var expectedValue = MapContext.Current.GetService<IMockService>().GetName();
38-
var config = ConfigureMapping(expectedValue);
37+
var config = new TypeAdapterConfig();
38+
config.NewConfig<Poco, Dto>()
39+
.Map(dto => dto.Name, _ => MapContext.Current.GetService<IMockService>().GetName());
3940

4041
IServiceCollection sc = new ServiceCollection();
4142
sc.AddScoped<IMockService, MockService>();
@@ -46,8 +47,9 @@ public void NoServiceAdapter_InjectionError()
4647

4748
var sp = sc.BuildServiceProvider();
4849
using var scope = sp.CreateScope();
49-
var mapper = scope.ServiceProvider.GetService<IMapper>();
50-
MapToDto(mapper, expectedValue);
50+
var mapper = scope.ServiceProvider.GetRequiredService<IMapper>();
51+
var ex = Should.Throw<InvalidOperationException>(() => mapper.Map<Poco, Dto>(new Poco { Id = "bar" }));
52+
ex.Message.ShouldBe("Mapping must be called using ServiceAdapter");
5153
}
5254

5355
private static TypeAdapterConfig ConfigureMapping(string expectedValue)

src/Mapster.DependencyInjection.Tests/Mapster.DependencyInjection.Tests.csproj

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net10.0;net9.0;net8.0;</TargetFrameworks>
4+
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
5+
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT' ">$(TargetFrameworks);net48</TargetFrameworks>
56
<IsTestProject>true</IsTestProject>
67
<IsPackable>false</IsPackable>
78
</PropertyGroup>
89

910
<ItemGroup>
10-
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
11-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
12-
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
13-
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
11+
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.2" />
12+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
13+
<PackageReference Include="MSTest.TestAdapter" Version="4.0.2" />
14+
<PackageReference Include="MSTest.TestFramework" Version="4.0.2" />
1415
<PackageReference Include="Shouldly" Version="4.2.1" />
1516
</ItemGroup>
1617

0 commit comments

Comments
 (0)