Skip to content
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
da7258f
feat: netstandard2.0 support and test fixes
asp2286 Feb 1, 2026
ad1d0b7
fix: restore IMapFrom fallback mapping
asp2286 Feb 6, 2026
2836d5f
chore: Merge pull request #849 from asp2286/fix/netstandard2-0
DocSvartz Feb 16, 2026
7e113d2
chore: Updated version numbers to 10.0.0-pre02
DocSvartz Feb 16, 2026
615417d
chore: Merge pull request #855 from DocSvartz/d17
DocSvartz Feb 16, 2026
eed3c80
fix(docs): fix Records type description to Mapster v10
DocSvartz Mar 6, 2026
5ab00d7
fix: restore nullable annotations to TypeAdapter
DocSvartz Mar 6, 2026
ec9666c
chore: Merge pull request #859 from DocSvartz/return-nullable-annotation
DocSvartz Mar 6, 2026
e37865d
chore: Updated version numbers to 10.0.0 release
DocSvartz Mar 7, 2026
109c124
chore: Merge pull request #860 from DocSvartz/Go-to-Release-v10
DocSvartz Mar 7, 2026
8ac6d31
fix(docs): replace Readme links
DocSvartz Mar 7, 2026
51a960f
fix(docs): fix build script
DocSvartz Mar 7, 2026
7222be3
chore: Merge pull request #862 from DocSvartz/FIx-Readme-Links
DocSvartz Mar 10, 2026
21dbdc6
fix(docs): fix records importatnt description
DocSvartz Mar 10, 2026
62eb60a
fix(docs): Add links to mapping features supported by Record
DocSvartz Mar 11, 2026
705205b
fix: replace TFM for Mapster.EF6
DocSvartz Mar 18, 2026
a6558bb
fix: Drop Automapper
DocSvartz Mar 18, 2026
c9e1b77
fix: drop Directory.Biuld.props file
DocSvartz Mar 18, 2026
859431f
chore: Merge pull request #856 from DocSvartz/R10---FixDocs-records
DocSvartz Mar 18, 2026
982d49b
chore: Merge pull request #868 from DocSvartz/Fix-Benchmark
DocSvartz Mar 18, 2026
753a02a
chore: Merge pull request #867 from DocSvartz/Fix-MapsterEF6-TFM
DocSvartz Mar 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 11 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ Writing mapping methods is a machine job. Do not waste your time, let Mapster do
|------|--------|-------------|
| **Mapster.Tool** | [![Mapster.Tool](https://img.shields.io/nuget/v/Mapster.Tool.svg?label=Mapster.Tool&color=informational)](https://www.nuget.org/packages/Mapster.Tool/latest) | [![Mapster.Tool](https://img.shields.io/nuget/vpre/Mapster.Tool.svg?label=Mapster.Tool&color=orange)](https://www.nuget.org/packages/Mapster.Tool) |

_Badges zeigen die jeweils aktuellste Stable-Version und die aktuellste Pre-Release-Version._

## Installation

Expand Down Expand Up @@ -105,7 +104,7 @@ using (MyDbContext context = new MyDbContext())

### Generating models & mappers

No need to write your own DTO classes. Mapster provides [Mapster.Tool](https://github.com/MapsterMapper/Mapster/wiki/Mapster.Tool) to help you generating models. And if you would like to have explicit mapping, Mapster also generates mapper class for you.
No need to write your own DTO classes. Mapster provides [Mapster.Tool](https://mapstermapper.github.io/Mapster/articles/tools/mapster-tool/Mapster-Tool-Overview.html) to help you generating models. And if you would like to have explicit mapping, Mapster also generates mapper class for you.

```csharp
[AdaptTo("[name]Dto"), GenerateMapper]
Expand All @@ -129,14 +128,14 @@ public static class StudentMapper {

## What's new

- [Fluent API for code generation](https://github.com/MapsterMapper/Mapster/wiki/Fluent-API-Code-generation)
- [Automatically generate mapping code on build](https://github.com/MapsterMapper/Mapster/wiki/Mapster.Tool)
- [Define setting to nested mapping](https://github.com/MapsterMapper/Mapster/wiki/Config-for-nested-mapping)
- [`ISet`, `IDictionary`, `IReadOnlyDictionary` support](https://github.com/MapsterMapper/Mapster/wiki/Data-types#collections)
- [`EmptyCollectionIfNull`, `CreateNewIfNull` DestinationTransform](https://github.com/MapsterMapper/Mapster/wiki/Setting-values#transform-value)
- [Fluent API for code generation](https://mapstermapper.github.io/Mapster/articles/tools/mapster-tool/Fluent-API-Code-generation.html)
- [Automatically generate mapping code on build](https://mapstermapper.github.io/Mapster/articles/tools/mapster-tool/Mapster-Tool-Overview.html)
- [Define setting to nested mapping](https://mapstermapper.github.io/Mapster/articles/configuration/Config-for-nested-mapping.html)
- [`ISet`, `IDictionary`, `IReadOnlyDictionary` support](https://mapstermapper.github.io/Mapster/articles/mapping/Data-types.html#collections)
- [`EmptyCollectionIfNull`, `CreateNewIfNull` DestinationTransform](https://mapstermapper.github.io/Mapster/articles/settings/Setting-values.html#transform-value)
- [Several fixes](https://github.com/MapsterMapper/Mapster/releases/)
- New plugins
- [Immutable collection support](https://github.com/MapsterMapper/Mapster/wiki/Immutable)
- [Immutable collection support](https://mapstermapper.github.io/Mapster/articles/packages/Immutable.html)

## Why Mapster?

Expand All @@ -145,8 +144,8 @@ public static class StudentMapper {
Mapster was designed to be efficient on both speed and memory. You could gain a 4x performance improvement whilst using only 1/3 of memory.
And you could gain up to 12x faster performance with:

- [Roslyn Compiler](https://github.com/MapsterMapper/Mapster/wiki/Debugging)
- [FEC](https://github.com/MapsterMapper/Mapster/wiki/FastExpressionCompiler)
- [Roslyn Compiler](https://mapstermapper.github.io/Mapster/articles/packages/ExpressionDebugging.html)
- [FEC](https://mapstermapper.github.io/Mapster/articles/packages/FastExpressionCompiler.html)
- Code generation

| Method | Mean | StdDev | Error | Gen 0 | Gen 1 | Gen 2 | Allocated |
Expand Down Expand Up @@ -175,8 +174,8 @@ Code generation allows you to

There are currently two tools which you can choose based on your preferences.

- [Mapster.Tool](https://github.com/MapsterMapper/Mapster/wiki/Mapster.Tool) _**NEW!**_
- [TextTemplate](https://github.com/MapsterMapper/Mapster/wiki/TextTemplate)
- [Mapster.Tool](https://mapstermapper.github.io/Mapster/articles/tools/mapster-tool/Mapster-Tool-Overview.html) _**NEW!**_
- [TextTemplate](https://mapstermapper.github.io/Mapster/articles/tools/TextTemplate.html)

## Change logs

Expand Down
2 changes: 1 addition & 1 deletion docs/Clean-and-Build-Docs.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Write-Information "Cleaning obsolete API documentation..." -InformationAction Co
# Step 3: Build documentation
Write-Information "Building documentation..." -InformationAction Continue

& .\Build-Docs.ps1 -LogLevel $LogLevel -serve $true -open-browser $true
& .\Build-Docs.ps1 -LogLevel $LogLevel -serve $true -openbrowser $true

if ($LASTEXITCODE -ne 0) {
Write-Error "Documentation build failed"
Expand Down
4 changes: 4 additions & 0 deletions src/ExpressionDebugger.Tests/ExpressionDebugger.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@
<IsPackable>false</IsPackable>
</PropertyGroup>

<PropertyGroup Condition=" '$(OS)' == 'Windows_NT' ">
<TargetFrameworks>$(TargetFrameworks);net48</TargetFrameworks>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
Expand Down
4 changes: 2 additions & 2 deletions src/ExpressionDebugger/ExpressionCompiler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,10 @@ from n in t.TypeNames
assemblyStream.Seek(0, SeekOrigin.Begin);
symbolsStream.Seek(0, SeekOrigin.Begin);

#if NETSTANDARD2_0 || NET6_0_OR_GREATER
#if NET6_0_OR_GREATER
return System.Runtime.Loader.AssemblyLoadContext.Default.LoadFromStream(assemblyStream, symbolsStream);
#else
return Assembly.Load(assemblyStream.ToArray(), symbolsStream.ToArray());
return Assembly.Load(assemblyStream.ToArray(), symbolsStream.ToArray());
#endif
}

Expand Down
6 changes: 3 additions & 3 deletions src/ExpressionDebugger/ExpressionDebugger.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0;</TargetFrameworks>
<TargetFrameworks>netstandard2.0;net10.0;net9.0;net8.0</TargetFrameworks>
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
<Authors>Chaowlert Chaisrichalermpol</Authors>
<Description>Step into debugging from linq expressions</Description>
Expand All @@ -12,7 +12,7 @@
<SignAssembly>True</SignAssembly>
<PublicSign Condition=" '$(OS)' != 'Windows_NT' ">true</PublicSign>
<AssemblyOriginatorKeyFile>ExpressionDebugger.snk</AssemblyOriginatorKeyFile>
<Version>10.0.0-pre01</Version>
<Version>10.0.0</Version>
<PackageLicenseUrl>https://github.com/chaowlert/ExpressionDebugger/blob/master/LICENSE</PackageLicenseUrl>
<LangVersion>8.0</LangVersion>
<Nullable>enable</Nullable>
Expand All @@ -25,4 +25,4 @@
<ItemGroup>
<ProjectReference Include="..\ExpressionTranslator\ExpressionTranslator.csproj" />
</ItemGroup>
</Project>
</Project>
6 changes: 3 additions & 3 deletions src/ExpressionTranslator/ExpressionTranslator.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<TargetFrameworks>netstandard2.0;net10.0;net9.0;net8.0</TargetFrameworks>
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
<Authors>Chaowlert Chaisrichalermpol</Authors>
<Description>Translate from linq expressions to C# code</Description>
Expand All @@ -12,7 +12,7 @@
<SignAssembly>True</SignAssembly>
<PublicSign Condition=" '$(OS)' != 'Windows_NT' ">true</PublicSign>
<AssemblyOriginatorKeyFile>ExpressionTranslator.snk</AssemblyOriginatorKeyFile>
<Version>10.0.0-pre01</Version>
<Version>10.0.0</Version>
<RootNamespace>ExpressionDebugger</RootNamespace>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageIcon>icon.png</PackageIcon>
Expand All @@ -25,7 +25,7 @@
<None Include="icon.png" Pack="true" PackagePath="\" />
</ItemGroup>

<ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' != 'netstandard2.0'">
<PackageReference Include="System.Runtime.Experimental" Version="6.0.2" />
</ItemGroup>
</Project>
6 changes: 3 additions & 3 deletions src/Mapster.Async.Tests/AsyncTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,15 @@ public async Task AsyncError()
}
}

[TestMethod, ExpectedException(typeof(InvalidOperationException))]
[TestMethod]
public void Sync()
{
TypeAdapterConfig<Poco, Dto>.NewConfig()
.AfterMappingAsync(async dest => { dest.Name = await GetName(); });

var poco = new Poco {Id = "foo"};
var dto = poco.Adapt<Dto>();
dto.Name.ShouldBe("bar");

Should.Throw<InvalidOperationException>(() => poco.Adapt<Dto>());
}

[TestMethod]
Expand Down
12 changes: 8 additions & 4 deletions src/Mapster.Async.Tests/Mapster.Async.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0;</TargetFrameworks>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<IsTestProject>true</IsTestProject>
<IsPackable>false</IsPackable>
</PropertyGroup>

<PropertyGroup Condition=" '$(OS)' == 'Windows_NT' ">
<TargetFrameworks>$(TargetFrameworks);net48</TargetFrameworks>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="MSTest.TestAdapter" Version="4.0.2" />
<PackageReference Include="MSTest.TestFramework" Version="4.0.2" />
<PackageReference Include="Shouldly" Version="4.2.1" />
</ItemGroup>

Expand Down
4 changes: 2 additions & 2 deletions src/Mapster.Async/Mapster.Async.csproj
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0;</TargetFrameworks>
<TargetFrameworks>netstandard2.0;net10.0;net9.0;net8.0</TargetFrameworks>
<Description>Async supports for Mapster</Description>
<IsPackable>true</IsPackable>
<PackageTags>Mapster;Async</PackageTags>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>Mapster.Async.snk</AssemblyOriginatorKeyFile>
<Version>10.0.0-pre01</Version>
<Version>10.0.0</Version>
</PropertyGroup>

<ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion src/Mapster.Core/Mapster.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyName>Mapster.Core</AssemblyName>
<PackageTags>Mapster</PackageTags>
<Version>10.0.0-pre01</Version>
<Version>10.0.0</Version>
<Nullable>enable</Nullable>
<IsPackable>true</IsPackable>
<SignAssembly>true</SignAssembly>
Expand Down
31 changes: 17 additions & 14 deletions src/Mapster.DependencyInjection.Tests/InjectionTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,23 +31,26 @@ public void Injection()
}
}

[TestMethod, ExpectedException(typeof(InvalidOperationException))]
[TestMethod]
public void NoServiceAdapter_InjectionError()
{
var expectedValue = MapContext.Current.GetService<IMockService>().GetName();
var config = ConfigureMapping(expectedValue);
Should.Throw<InvalidOperationException>(() =>
{
var expectedValue = MapContext.Current.GetService<IMockService>().GetName();
var config = ConfigureMapping(expectedValue);

IServiceCollection sc = new ServiceCollection();
sc.AddScoped<IMockService, MockService>();
sc.AddSingleton(config);
// We should use ServiceMapper in normal code
// but for this test we want to be sure the code will generate the InvalidOperationException
sc.AddScoped<IMapper, Mapper>();
IServiceCollection sc = new ServiceCollection();
sc.AddScoped<IMockService, MockService>();
sc.AddSingleton(config);
// We should use ServiceMapper in normal code
// but for this test we want to be sure the code will generate the InvalidOperationException
sc.AddScoped<IMapper, Mapper>();

var sp = sc.BuildServiceProvider();
using var scope = sp.CreateScope();
var mapper = scope.ServiceProvider.GetService<IMapper>();
MapToDto(mapper, expectedValue);
var sp = sc.BuildServiceProvider();
using var scope = sp.CreateScope();
var mapper = scope.ServiceProvider.GetService<IMapper>();
MapToDto(mapper, expectedValue);
});
}

private static TypeAdapterConfig ConfigureMapping(string expectedValue)
Expand Down Expand Up @@ -103,4 +106,4 @@ public class Dto
public string Id { get; set; }
public string Name { get; set; }
}
}
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0;</TargetFrameworks>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<IsTestProject>true</IsTestProject>
<IsPackable>false</IsPackable>
</PropertyGroup>

<PropertyGroup Condition=" '$(OS)' == 'Windows_NT' ">
<TargetFrameworks>$(TargetFrameworks);net48</TargetFrameworks>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="MSTest.TestAdapter" Version="4.0.2" />
<PackageReference Include="MSTest.TestFramework" Version="4.0.2" />
<PackageReference Include="Shouldly" Version="4.2.1" />
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0;</TargetFrameworks>
<TargetFrameworks>netstandard2.0;net10.0;net9.0;net8.0</TargetFrameworks>
<Description>Dependency Injection supports for Mapster</Description>
<IsPackable>true</IsPackable>
<PackageTags>Mapster;DependencyInjection</PackageTags>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>Mapster.DependencyInjection.snk</AssemblyOriginatorKeyFile>
<Version>10.0.0-pre01</Version>
<Version>10.0.0</Version>
</PropertyGroup>
<ItemGroup>
<None Include="icon.png" Pack="true" PackagePath="\" />
Expand Down
2 changes: 1 addition & 1 deletion src/Mapster.EF6/Mapster.EF6.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<SignAssembly>True</SignAssembly>
<PublicSign Condition=" '$(OS)' != 'Windows_NT' ">true</PublicSign>
<AssemblyOriginatorKeyFile>Mapster.EF6.snk</AssemblyOriginatorKeyFile>
<Version>10.0.0-pre01</Version>
<Version>10.0.0</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="EntityFramework" Version="6.5.1" />
Expand Down
6 changes: 3 additions & 3 deletions src/Mapster.EFCore.Tests/Mapster.EFCore.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@

<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="9.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="MSTest.TestAdapter" Version="4.0.2" />
<PackageReference Include="MSTest.TestFramework" Version="4.0.2" />
<PackageReference Include="coverlet.collector" Version="6.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
2 changes: 1 addition & 1 deletion src/Mapster.EFCore/Mapster.EFCore.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<SignAssembly>True</SignAssembly>
<PublicSign Condition=" '$(OS)' != 'Windows_NT' ">true</PublicSign>
<AssemblyOriginatorKeyFile>Mapster.EFCore.snk</AssemblyOriginatorKeyFile>
<Version>10.0.0-pre01</Version>
<Version>10.0.0</Version>
</PropertyGroup>

<ItemGroup>
Expand Down
12 changes: 8 additions & 4 deletions src/Mapster.Immutable.Tests/Mapster.Immutable.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0;</TargetFrameworks>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<IsTestProject>true</IsTestProject>
<IsPackable>false</IsPackable>
</PropertyGroup>

<PropertyGroup Condition=" '$(OS)' == 'Windows_NT' ">
<TargetFrameworks>$(TargetFrameworks);net48</TargetFrameworks>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="MSTest.TestAdapter" Version="4.0.2" />
<PackageReference Include="MSTest.TestFramework" Version="4.0.2" />
<PackageReference Include="coverlet.collector" Version="6.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
4 changes: 2 additions & 2 deletions src/Mapster.Immutable/Mapster.Immutable.csproj
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0;</TargetFrameworks>
<TargetFrameworks>netstandard2.0;net10.0;net9.0;net8.0</TargetFrameworks>
<Description>Immutable collection supports for Mapster</Description>
<IsPackable>true</IsPackable>
<PackageTags>Mapster;Immutable</PackageTags>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>Mapster.Immutable.snk</AssemblyOriginatorKeyFile>
<Version>10.0.0-pre01</Version>
<Version>10.0.0</Version>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
Expand Down
12 changes: 8 additions & 4 deletions src/Mapster.JsonNet.Tests/Mapster.JsonNet.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net10.0;net9.0;net8.0;</TargetFrameworks>
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<IsTestProject>true</IsTestProject>
<IsPackable>false</IsPackable>
</PropertyGroup>

<PropertyGroup Condition=" '$(OS)' == 'Windows_NT' ">
<TargetFrameworks>$(TargetFrameworks);net48</TargetFrameworks>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.7.0" />
<PackageReference Include="MSTest.TestFramework" Version="3.7.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="MSTest.TestAdapter" Version="4.0.2" />
<PackageReference Include="MSTest.TestFramework" Version="4.0.2" />
<PackageReference Include="Shouldly" Version="4.2.1" />
</ItemGroup>

Expand Down
Loading
Loading