Skip to content

Commit 44d7ed9

Browse files
authored
Strong name signing of assemblies (#18)
* Enabled .Net Standard 2.0 too * Make .NS 2.0 code cleaner * Strong name signing * Fixed CI * Make string.Contains on NS2.0 the same behavior as NS2.1
1 parent fcf97c3 commit 44d7ed9

8 files changed

+60
-3
lines changed

Diff for: Directory.Build.props

+10
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<Project>
2+
23
<PropertyGroup>
34
<MinClientVersion>2.12</MinClientVersion>
45
<Authors>MyCSharp.de, Benjamin Abt, Günther Foidl and Contributors</Authors>
@@ -15,9 +16,18 @@
1516
<IsTestProject>$(MSBuildProjectName.Contains('Test'))</IsTestProject>
1617
<IsBenchmarkProject>$(MsBuildProjectName.Contains('Benchmark'))</IsBenchmarkProject>
1718
<IsPackable>false</IsPackable>
19+
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
1820
</PropertyGroup>
1921

2022
<PropertyGroup Condition="'$(IsTestProject)' != 'true' AND '$(IsBenchmarkProject)' != 'true'">
2123
<GenerateDocumentationFile Condition="'$(Configuration)' == 'Release'">true</GenerateDocumentationFile>
2224
</PropertyGroup>
25+
26+
<PropertyGroup>
27+
<SignAssembly>true</SignAssembly>
28+
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)MyCSharp.HttpUserAgentParser.snk</AssemblyOriginatorKeyFile>
29+
30+
<PublicKey>00240000048000009400000006020000002400005253413100040000010001003d5c022c088a46d41d5a5bf7591f3a3dcba30f76b0f43a312b6e45bb419d32283175cbd8bfd83134b123da6db83479e50596fb6bbe0e8c6cef50c01c64a0861c963daaf6905920f44ffe1ce44b3cfcb9c23779f34bc90c7b04e74e36a19bb58af3a69456d49b56993969dba9f8e9e935c2757844a11066d1091477f10cd923b7</PublicKey>
31+
</PropertyGroup>
32+
2333
</Project>

Diff for: MyCSharp.HttpUserAgentParser.sln

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_", "_", "{5738CE0D-5E6E-47
3333
EndProject
3434
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "perf", "perf", "{FAAD18A0-E1B8-448D-B611-AFBDA8A89808}"
3535
EndProject
36-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCSharp.HttpUserAgentParser.Benchmarks", "perf\MyCSharp.HttpUserAgentParser.Benchmarks\MyCSharp.HttpUserAgentParser.Benchmarks.csproj", "{A0D213E9-6408-46D1-AFAF-5096C2F6E027}"
36+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCSharp.HttpUserAgentParser.Benchmarks", "perf\MyCSharp.HttpUserAgentParser.Benchmarks\MyCSharp.HttpUserAgentParser.Benchmarks.csproj", "{A0D213E9-6408-46D1-AFAF-5096C2F6E027}"
3737
EndProject
3838
Global
3939
GlobalSection(SolutionConfigurationPlatforms) = preSolution

Diff for: MyCSharp.HttpUserAgentParser.snk

596 Bytes
Binary file not shown.

Diff for: perf/MyCSharp.HttpUserAgentParser.Benchmarks/MyCSharp.HttpUserAgentParser.Benchmarks.csproj

+4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010
<DefineConstants>$(DefineConstants);OS_WIN</DefineConstants>
1111
</PropertyGroup>
1212

13+
<PropertyGroup Label="No strong named assembly references">
14+
<NoWarn>$(NoWarn);CS8002</NoWarn>
15+
</PropertyGroup>
16+
1317
<ItemGroup>
1418
<PackageReference Include="BenchmarkDotNet" Version="0.12.1" />
1519
<PackageReference Include="BenchmarkDotNet.Diagnostics.Windows" Version="0.12.1" Condition="'$(OS)' == 'Windows_NT'" />

Diff for: src/MyCSharp.HttpUserAgentParser.MemoryCache/HttpUserAgentParserMemoryCachedProvider.cs

+5
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ public class HttpUserAgentParserMemoryCachedProvider : IHttpUserAgentParserProvi
1212
private readonly IMemoryCache _memoryCache;
1313
private readonly HttpUserAgentParserMemoryCachedProviderOptions _options;
1414

15+
/// <summary>
16+
/// Creates a new instance of <see cref="HttpUserAgentParserMemoryCachedProvider"/>.
17+
/// </summary>
18+
/// <param name="memoryCache">The memory cache instance to use</param>
19+
/// <param name="options">The options used to set expiration and size limit</param>
1520
public HttpUserAgentParserMemoryCachedProvider(IMemoryCache memoryCache, HttpUserAgentParserMemoryCachedProviderOptions options)
1621
{
1722
_memoryCache = memoryCache;

Diff for: src/MyCSharp.HttpUserAgentParser.MemoryCache/MyCSharp.HttpUserAgentParser.MemoryCache.csproj

+5-1
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,14 @@
33
<PropertyGroup>
44
<Product>HTTP User Agent Parser Extensions for IMemoryCache</Product>
55
<Description>HTTP User Agent Parser Extensions for IMemoryCache</Description>
6-
<TargetFramework>netstandard2.1</TargetFramework>
6+
<TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
77
<IsPackable>true</IsPackable>
88
</PropertyGroup>
99

10+
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
11+
<Compile Include="..\NetStandard2.0-Shim.cs" />
12+
</ItemGroup>
13+
1014
<ItemGroup>
1115
<PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="5.0.0" />
1216
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="5.0.0" />

Diff for: src/MyCSharp.HttpUserAgentParser/MyCSharp.HttpUserAgentParser.csproj

+5-1
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,14 @@
33
<PropertyGroup>
44
<Product>HTTP User Agent Parser</Product>
55
<Description>Parses user agents for Browser, Platform and Bots.</Description>
6-
<TargetFramework>netstandard2.1</TargetFramework>
6+
<TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
77
<IsPackable>true</IsPackable>
88
</PropertyGroup>
99

10+
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
11+
<Compile Include="..\NetStandard2.0-Shim.cs" />
12+
</ItemGroup>
13+
1014
<ItemGroup>
1115
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0" />
1216
</ItemGroup>

Diff for: src/NetStandard2.0-Shim.cs

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// Copyright © myCSharp 2020-2021, all rights reserved
2+
3+
namespace System.Diagnostics.CodeAnalysis
4+
{
5+
[AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
6+
internal sealed class NotNullWhenAttribute : Attribute
7+
{
8+
public NotNullWhenAttribute(bool returnValue) => this.ReturnValue = returnValue;
9+
10+
public bool ReturnValue { get; }
11+
}
12+
}
13+
14+
namespace MyCSharp.HttpUserAgentParser
15+
{
16+
using System;
17+
using System.Collections.Generic;
18+
19+
internal static class Extensions
20+
{
21+
public static void Deconstruct<TKey, TValue>(this KeyValuePair<TKey, TValue> kvp, out TKey key, out TValue value)
22+
{
23+
key = kvp.Key;
24+
value = kvp.Value;
25+
}
26+
27+
public static bool Contains(this string instance, string value, StringComparison comparison)
28+
=> instance.IndexOf(value, comparison) >= 0;
29+
}
30+
}

0 commit comments

Comments
 (0)