Skip to content

Commit

Permalink
update build/CI/dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
saucecontrol committed Feb 16, 2020
1 parent 5821616 commit d50f5fa
Show file tree
Hide file tree
Showing 11 changed files with 124 additions and 171 deletions.
35 changes: 18 additions & 17 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@ pool:

name: $(Year:yy)$(DayOfYear)$(Rev:r)
steps:
- task: NuGetAuthenticate@0
condition: ne(variables['Build.Reason'], 'PullRequest')

- task: UseDotNet@2
displayName: Ensure 3.0 SDK
displayName: Ensure 3.1 SDK
inputs:
version: 3.0.x
version: 3.1.x

- task: UseDotNet@2
displayName: Ensure 2.1 Runtime
Expand All @@ -18,24 +21,22 @@ steps:
version: 2.1.x
performMultiLevelLookup: true

- task: DotNetCoreCLI@2
- script: dotnet build src\Blake2Fast -c Dist --version-suffix ci$(Build.BuildNumber)
displayName: Build
inputs:
command: build
projects: 'src/**/*.csproj'
arguments: '-c Dist --version-suffix preview$(Build.BuildNumber)'

- task: DotNetCoreCLI@2
- script: dotnet test tests\Blake2.Test -c Release -s tests\runsettings --logger trx
displayName: Test
inputs:
command: test
projects: 'tests/*.Test/*.csproj'
arguments: '-c Release'

- task: DotNetCoreCLI@2
- script: dotnet test tests\Blake2.Test -c Release -f netcoreapp3.0 -s tests\runsettings --logger trx
displayName: Test - No AVX
env:
COMPlus_EnableAVX: 0

- script: dotnet nuget push --api-key AzureArtifacts --source https://pkgs.dev.azure.com/saucecontrol/Blake2Fast/_packaging/blake2fast_ci/nuget/v3/index.json out\bin\Blake2Fast\Dist\SauceControl.Blake2Fast.*.nupkg
displayName: Push
condition: ne(variables['Build.Reason'], 'PullRequest')

- task: PublishTestResults@2
inputs:
command: push
packagesToPush: 'out/bin/**/*.nupkg'
nuGetFeedType: internal
publishVstsFeed: 223195a1-0c57-4ba7-a9bf-c1f891690877/8b69f87a-bc99-4761-abd9-17a352d1441f
testRunner: VSTest
testResultsFiles: out\testresults\*.trx
54 changes: 54 additions & 0 deletions build/Common.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<Project>

<PropertyGroup>
<Owners>SauceControl</Owners>
<Authors>Clinton Ingram</Authors>
<RepositoryUrl>https://github.com/saucecontrol/Blake2Fast</RepositoryUrl>
<Copyright>Copyright © 2018-$([System.DateTime]::Today.Year) $(Authors)</Copyright>
<Title>High-Performance BLAKE2 Hashing for .NET</Title>
<Description>Optimized implementations of the BLAKE2b and BLAKE2s cryptographic hashing algorithms. Uses SSE2-SSE4.1 Hardware Intrinsics support on .NET Core 2.1+ and AVX2 on .NET Core 3+</Description>

<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<AssemblyName>$(Owners).$(MSBuildProjectName)</AssemblyName>
<AssemblyTitle>$(MSBuildProjectName)</AssemblyTitle>
<Product>$(MSBuildProjectName)</Product>

<PackageIcon>package/$(Owners).png</PackageIcon>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
<PackageTags>BLAKE2 Hash BLAKE2b BLAKE2s SSE2 AVX2 SIMD HashAlgorithm HMAC Cryptography</PackageTags>
<PackageReleaseNotes>See $(RepositoryUrl)/releases for release-specific notes.</PackageReleaseNotes>

<LangVersion>8</LangVersion>
<Features>strict</Features>
<Nullable>annotations</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>

<Configurations>Debug;Release;Dist</Configurations>
<Configuration Condition="'$(Configuration)'==''">Release</Configuration>

<RepositoryRoot>$(MSBuildThisFileDirectory)..\</RepositoryRoot>
<BaseIntermediateOutputPath>$(RepositoryRoot)out\obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
<BaseOutputPath>$(RepositoryRoot)out\bin\$(MSBuildProjectName)\</BaseOutputPath>
<IntermediateOutputPath>$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
<OutputPath>$(BaseOutputPath)$(Configuration)\</OutputPath>
<IntDir>$(IntermediateOutputPath)$(TargetFramework)\</IntDir>
<OutDir>$(OutputPath)$(TargetFramework)\</OutDir>

<AssemblyInfoFile>$(IntDir)_AssemblyInfo.cs</AssemblyInfoFile>
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)$(Owners).snk</AssemblyOriginatorKeyFile>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)'!='Debug'">
<Deterministic>true</Deterministic>
<DebugSymbols>true</DebugSymbols>
<DebugType>portable</DebugType>
<Optimize>true</Optimize>
</PropertyGroup>

<ItemGroup Condition="'$(Configuration)'=='Dist' Or '$(Configuration)'=='Coverage'">
<None Include="$(MSBuildThisFileDirectory)$(Owners).png" Pack="true" PackagePath="package" />
<SourceRoot Include="$(RepositoryRoot)" />
</ItemGroup>

</Project>
File renamed without changes
File renamed without changes.
108 changes: 20 additions & 88 deletions src/Blake2Fast/Blake2Fast.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -19,102 +19,34 @@
</ItemGroup>

<ItemGroup Condition="!$(DefineConstants.Contains('BUILTIN_SPAN'))">
<PackageReference Include="System.Buffers" Version="4.5.0" />
<PackageReference Include="System.Memory" Version="4.5.3" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)'!='netcoreapp3.0'">
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.6.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.7.0" />
</ItemGroup>

<ItemGroup>
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
</ItemGroup>

<ItemGroup>
<Compile Update="Blake2b\Blake2b.cs">
<DependentUpon>Blake2b.tt</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
<Compile Update="Blake2b\Blake2bContext.cs">
<DependentUpon>Blake2bContext.tt</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
<Compile Update="Blake2b\Blake2bScalar.cs">
<DependentUpon>Blake2bScalar.tt</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
<Compile Update="Blake2b\Blake2bSse4.cs">
<DependentUpon>Blake2bSse4.tt</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
<Compile Update="Blake2b\Blake2bAvx2.cs">
<DependentUpon>Blake2bAvx2.tt</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
<Compile Update="Blake2s\Blake2s.cs">
<DependentUpon>Blake2s.tt</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
<Compile Update="Blake2s\Blake2sContext.cs">
<DependentUpon>Blake2sContext.tt</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
<Compile Update="Blake2s\Blake2sScalar.cs">
<DependentUpon>Blake2sScalar.tt</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
<Compile Update="Blake2s\Blake2sSse4.cs">
<DependentUpon>Blake2sSse4.tt</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
</ItemGroup>

<ItemGroup>
<None Update="Blake2b\Blake2b.tt">
<LastGenOutput>Blake2b.cs</LastGenOutput>
<Generator>TextTemplatingFileGenerator</Generator>
</None>
<None Update="Blake2b\Blake2bContext.tt">
<LastGenOutput>Blake2bContext.cs</LastGenOutput>
<Generator>TextTemplatingFileGenerator</Generator>
</None>
<None Update="Blake2b\Blake2bScalar.tt">
<LastGenOutput>Blake2bScalar.cs</LastGenOutput>
<Generator>TextTemplatingFileGenerator</Generator>
</None>
<None Update="Blake2b\Blake2bSse4.tt">
<LastGenOutput>Blake2bSse4.cs</LastGenOutput>
<Generator>TextTemplatingFileGenerator</Generator>
</None>
<None Update="Blake2b\Blake2bAvx2.tt">
<LastGenOutput>Blake2bAvx2.cs</LastGenOutput>
<Generator>TextTemplatingFileGenerator</Generator>
</None>
<None Update="Blake2s\Blake2s.tt">
<LastGenOutput>Blake2s.cs</LastGenOutput>
<Generator>TextTemplatingFileGenerator</Generator>
</None>
<None Update="Blake2s\Blake2sContext.tt">
<LastGenOutput>Blake2sContext.cs</LastGenOutput>
<Generator>TextTemplatingFileGenerator</Generator>
</None>
<None Update="Blake2s\Blake2sScalar.tt">
<LastGenOutput>Blake2sScalar.cs</LastGenOutput>
<Generator>TextTemplatingFileGenerator</Generator>
</None>
<None Update="Blake2s\Blake2sSse4.tt">
<LastGenOutput>Blake2sSse4.cs</LastGenOutput>
<Generator>TextTemplatingFileGenerator</Generator>
</None>
<None Update="Blake2b\Blake2b.tt" LastGenOutput="Blake2b.cs" Generator="TextTemplatingFileGenerator" />
<None Update="Blake2s\Blake2s.tt" LastGenOutput="Blake2s.cs" Generator="TextTemplatingFileGenerator" />
<None Update="Blake2b\Blake2bContext.tt" LastGenOutput="Blake2bContext.cs" Generator="TextTemplatingFileGenerator" />
<None Update="Blake2s\Blake2sContext.tt" LastGenOutput="Blake2sContext.cs" Generator="TextTemplatingFileGenerator" />
<None Update="Blake2b\Blake2bScalar.tt" LastGenOutput="Blake2bScalar.cs" Generator="TextTemplatingFileGenerator" />
<None Update="Blake2s\Blake2sScalar.tt" LastGenOutput="Blake2sScalar.cs" Generator="TextTemplatingFileGenerator" />
<None Update="Blake2b\Blake2bSse4.tt" LastGenOutput="Blake2bSse4.cs" Generator="TextTemplatingFileGenerator" />
<None Update="Blake2s\Blake2sSse4.tt" LastGenOutput="Blake2sSse4.cs" Generator="TextTemplatingFileGenerator" />
<None Update="Blake2b\Blake2bAvx2.tt" LastGenOutput="Blake2bAvx2.cs" Generator="TextTemplatingFileGenerator" />
<Compile Update="Blake2b\Blake2b.cs" DependentUpon="Blake2b.tt" DesignTime="True" AutoGen="True" />
<Compile Update="Blake2s\Blake2s.cs" DependentUpon="Blake2s.tt" DesignTime="True" AutoGen="True" />
<Compile Update="Blake2b\Blake2bContext.cs" DependentUpon="Blake2bContext.tt" DesignTime="True" AutoGen="True" />
<Compile Update="Blake2s\Blake2sContext.cs" DependentUpon="Blake2sContext.tt" DesignTime="True" AutoGen="True" />
<Compile Update="Blake2b\Blake2bScalar.cs" DependentUpon="Blake2bScalar.tt" DesignTime="True" AutoGen="True" />
<Compile Update="Blake2s\Blake2sScalar.cs" DependentUpon="Blake2sScalar.tt" DesignTime="True" AutoGen="True" />
<Compile Update="Blake2b\Blake2bSse4.cs" DependentUpon="Blake2bSse4.tt" DesignTime="True" AutoGen="True" />
<Compile Update="Blake2s\Blake2sSse4.cs" DependentUpon="Blake2sSse4.tt" DesignTime="True" AutoGen="True" />
<Compile Update="Blake2b\Blake2bAvx2.cs" DependentUpon="Blake2bAvx2.tt" DesignTime="True" AutoGen="True" />
</ItemGroup>

</Project>
50 changes: 11 additions & 39 deletions src/Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,58 +1,30 @@
<Project>

<PropertyGroup>
<Owners>SauceControl</Owners>
<Authors>Clinton Ingram</Authors>
<RepositoryUrl>https://github.com/saucecontrol/Blake2Fast</RepositoryUrl>
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<Copyright>Copyright © 2018-$([System.DateTime]::Today.Year) $(Authors)</Copyright>
<Title>High-Performance BLAKE2 Hashing for .NET</Title>
<Description>Optimized implementations of the BLAKE2b and BLAKE2s cryptographic hashing algorithms. Uses SSE2-SSE4.1 Hardware Intrinsics support on .NET Core 2.1+ and AVX2 on .NET Core 3.0</Description>
<PackageIcon>package/$(Owners).png</PackageIcon>
<PackageTags>BLAKE2 Hash BLAKE2b BLAKE2s SSE2 AVX2 SIMD HashAlgorithm HMAC Cryptography</PackageTags>
<PackageReleaseNotes>See $(RepositoryUrl)/releases for release-specific notes.</PackageReleaseNotes>

<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<AssemblyName>$(Owners).$(MSBuildProjectName)</AssemblyName>
<AssemblyTitle>$(MSBuildProjectName)</AssemblyTitle>
<Product>$(MSBuildProjectName)</Product>
<Import Project="$(MSBuildThisFileDirectory)..\build\Common.props" />

<Configurations>Debug;Release;Dist</Configurations>
<LangVersion>8</LangVersion>
<Features>strict</Features>
<PropertyGroup>
<Nullable>enable</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)$(Owners).snk</AssemblyOriginatorKeyFile>

<Configuration Condition="'$(Configuration)'==''">Release</Configuration>
<BaseIntermediateOutputPath>$(MSBuildThisFileDirectory)..\out\obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
<BaseOutputPath>$(MSBuildThisFileDirectory)..\out\bin\$(MSBuildProjectName)\</BaseOutputPath>
<IntermediateOutputPath>$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
<OutputPath>$(BaseOutputPath)$(Configuration)\</OutputPath>
<IntDir>$(IntermediateOutputPath)$(TargetFramework)\</IntDir>
<OutDir>$(OutputPath)$(TargetFramework)\</OutDir>
<AssemblyInfoFile>$(IntDir)_AssemblyInfo.cs</AssemblyInfoFile>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)'!='Debug'">
<DebugType>portable</DebugType>
<DebugSymbols>true</DebugSymbols>
<Optimize>true</Optimize>
<DocumentationFile>$(IntDir)$(AssemblyName).xml</DocumentationFile>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)'=='Dist'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<DeterministicSourcePaths>true</DeterministicSourcePaths>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>

<ItemGroup Condition="'$(Configuration)'=='Dist'">
<None Include="$(MSBuildThisFileDirectory)$(Owners).png" Pack="true" PackagePath="package" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0-beta2-19367-01" PrivateAssets="all" />
<PackageReference Include="SauceControl.InheritDoc" Version="0.4.0" PrivateAssets="all" />
<PackageReference Include="SauceControl.InheritDoc" Version="1.0.0" PrivateAssets="all" />
</ItemGroup>

<ItemGroup Condition="'$(Configuration)'=='Dist' or '$(Configuration)'=='Coverage'">
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="all" />
</ItemGroup>

</Project>
6 changes: 3 additions & 3 deletions tests/Blake2.Test/Blake2.Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="System.Json" Version="4.6.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.6.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
<PackageReference Include="System.Json" Version="4.7.0" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.7.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" PrivateAssets="all" />
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
Expand Down
20 changes: 3 additions & 17 deletions tests/Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,23 +1,9 @@
<Project>

<PropertyGroup>
<LangVersion>8</LangVersion>
<Features>strict</Features>
<Nullable>annotations</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>

<Configuration Condition="'$(Configuration)'==''">Release</Configuration>
<BaseIntermediateOutputPath>$(MSBuildThisFileDirectory)..\out\obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
<BaseOutputPath>$(MSBuildThisFileDirectory)..\out\bin\$(MSBuildProjectName)\</BaseOutputPath>
<IntermediateOutputPath>$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
<OutputPath>$(BaseOutputPath)$(Configuration)\</OutputPath>
<OutDir>$(OutputPath)$(TargetFramework)\</OutDir>
<AssemblyInfoFile>$(IntermediateOutputPath)$(TargetFramework)\_AssemblyInfo.cs</AssemblyInfoFile>
</PropertyGroup>
<Import Project="$(MSBuildThisFileDirectory)..\build\Common.props" />

<PropertyGroup Condition="'$(Configuration)'=='Release'">
<DebugType>pdbonly</DebugType>
<DebugSymbols>true</DebugSymbols>
<PropertyGroup>
<AssemblyName>$(MSBuildProjectName)</AssemblyName>
</PropertyGroup>

</Project>
10 changes: 5 additions & 5 deletions tests/JitRegression/BenchmarkConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,25 @@ public class MultipleJitConfig : ManualConfig
{
public MultipleJitConfig()
{
var netCoreApp30 = new NetCoreAppSettings("netcoreapp3.0", null, ".NET Core 3.0");
var netCoreApp31 = new NetCoreAppSettings("netcoreapp3.1", null, ".NET Core 3.1");

var cli11_32 = NetCoreAppSettings.NetCoreApp11.WithCustomDotNetCliPath(Paths.DotNetCLIx86, "Default");
var cli11_64 = NetCoreAppSettings.NetCoreApp11.WithCustomDotNetCliPath(Paths.DotNetCLIx64, "Default");
var cli20_32 = NetCoreAppSettings.NetCoreApp20.WithCustomDotNetCliPath(Paths.DotNetCLIx86, "Default");
var cli20_64 = NetCoreAppSettings.NetCoreApp20.WithCustomDotNetCliPath(Paths.DotNetCLIx64, "Default");
var cli21_32 = NetCoreAppSettings.NetCoreApp21.WithCustomDotNetCliPath(Paths.DotNetCLIx86, "Default");
var cli21_64 = NetCoreAppSettings.NetCoreApp21.WithCustomDotNetCliPath(Paths.DotNetCLIx64, "Default");
var cli30_32 = netCoreApp30.WithCustomDotNetCliPath(Paths.DotNetCLIx86, "Default");
var cli30_64 = netCoreApp30.WithCustomDotNetCliPath(Paths.DotNetCLIx64, "Default");
var cli31_32 = netCoreApp31.WithCustomDotNetCliPath(Paths.DotNetCLIx86, "Default");
var cli31_64 = netCoreApp31.WithCustomDotNetCliPath(Paths.DotNetCLIx64, "Default");

Add(Job.RyuJitX64.With(CsProjCoreToolchain.From(cli11_64)).AsBaseline().WithId("netcoreapp1.1"));
Add(Job.RyuJitX86.With(CsProjCoreToolchain.From(cli11_32)).AsBaseline().WithId("netcoreapp1.1"));
Add(Job.RyuJitX64.With(CsProjCoreToolchain.From(cli20_64)).WithId("netcoreapp2.0"));
Add(Job.RyuJitX86.With(CsProjCoreToolchain.From(cli20_32)).WithId("netcoreapp2.0"));
Add(Job.RyuJitX64.With(CsProjCoreToolchain.From(cli21_64)).WithId("netcoreapp2.1"));
Add(Job.RyuJitX86.With(CsProjCoreToolchain.From(cli21_32)).WithId("netcoreapp2.1"));
Add(Job.RyuJitX64.With(CsProjCoreToolchain.From(cli30_64)).WithId("netcoreapp3.0"));
Add(Job.RyuJitX86.With(CsProjCoreToolchain.From(cli30_32)).WithId("netcoreapp3.0"));
Add(Job.RyuJitX64.With(CsProjCoreToolchain.From(cli31_64)).WithId("netcoreapp3.1"));
Add(Job.RyuJitX86.With(CsProjCoreToolchain.From(cli31_32)).WithId("netcoreapp3.1"));

Add(DefaultConfig.Instance.GetLoggers().ToArray());
Add(DefaultConfig.Instance.GetColumnProviders().ToArray());
Expand Down
5 changes: 3 additions & 2 deletions tests/JitRegression/JitRegression.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<PlatformTarget>AnyCPU</PlatformTarget>
<TargetFrameworks>netcoreapp3.0;netcoreapp2.1;netcoreapp2.0;netcoreapp1.1</TargetFrameworks>
<TargetFrameworks>netcoreapp3.1;netcoreapp2.1;netcoreapp2.0;netcoreapp1.1</TargetFrameworks>
<LangVersion>latest</LangVersion>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<TieredCompilation>false</TieredCompilation>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)'=='Release'">
Expand All @@ -15,7 +16,7 @@

<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.10.14" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.5.2" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.7.0" />
</ItemGroup>

</Project>
Loading

0 comments on commit d50f5fa

Please sign in to comment.