Skip to content

Commit 120d753

Browse files
authored
Merge pull request #445 from nblumhardt/dotnet-9-build-fixes
Try to get `TestApp` running happily in the new build configuration
2 parents 86fed08 + bc92b24 commit 120d753

File tree

6 files changed

+118
-3
lines changed

6 files changed

+118
-3
lines changed

test/TestApp-net9.0/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
FodyWeavers.xml
2+
FodyWeavers.xsd

test/TestApp-net9.0/Program.cs

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
using System.Reflection;
2+
using Microsoft.Extensions.Configuration;
3+
using Serilog;
4+
using Serilog.Debugging;
5+
using Serilog.Settings.Configuration;
6+
7+
if (args.Length == 1 && args[0] == "is-single-file")
8+
{
9+
if (typeof(Program).Assembly.GetManifestResourceNames().Any(e => e.StartsWith("costura.")))
10+
{
11+
Console.WriteLine(true);
12+
return 0;
13+
}
14+
// IL3000: 'System.Reflection.Assembly.Location' always returns an empty string for assemblies embedded in a single-file app
15+
#pragma warning disable IL3000
16+
Console.WriteLine(string.IsNullOrEmpty(Assembly.GetEntryAssembly()?.Location));
17+
#pragma warning restore
18+
return 0;
19+
}
20+
21+
SelfLog.Enable(Console.Error);
22+
23+
Thread.CurrentThread.Name = "Main thread";
24+
const string outputTemplate = "({ThreadName}) [{Level}] {Message}{NewLine}";
25+
26+
var configurationValues = new Dictionary<string, string?>();
27+
var minimumLevelOnly = args.Contains("--minimum-level-only");
28+
if (minimumLevelOnly)
29+
{
30+
configurationValues["Serilog:MinimumLevel"] = "Verbose";
31+
}
32+
else
33+
{
34+
configurationValues["Serilog:Enrich:0"] = "WithThreadName";
35+
configurationValues["Serilog:WriteTo:0:Name"] = "Console";
36+
configurationValues["Serilog:WriteTo:0:Args:outputTemplate"] = outputTemplate;
37+
}
38+
39+
if (args.Contains("--using-thread")) configurationValues["Serilog:Using:Thread"] = "Serilog.Enrichers.Thread";
40+
if (args.Contains("--using-console")) configurationValues["Serilog:Using:Console"] = "Serilog.Sinks.Console";
41+
42+
var assemblies = new List<Assembly>();
43+
if (args.Contains("--assembly-thread")) assemblies.Add(typeof(ThreadLoggerConfigurationExtensions).Assembly);
44+
if (args.Contains("--assembly-console")) assemblies.Add(typeof(ConsoleLoggerConfigurationExtensions).Assembly);
45+
46+
try
47+
{
48+
var configuration = new ConfigurationBuilder().AddInMemoryCollection(configurationValues).Build();
49+
var options = assemblies.Count > 0 ? new ConfigurationReaderOptions(assemblies.ToArray()) : null;
50+
var loggerConfiguration = new LoggerConfiguration().ReadFrom.Configuration(configuration, options);
51+
if (minimumLevelOnly)
52+
{
53+
loggerConfiguration
54+
.Enrich.WithThreadName()
55+
.WriteTo.Console(outputTemplate: outputTemplate);
56+
}
57+
var logger = loggerConfiguration.CreateLogger();
58+
logger.Information("Expected success");
59+
return 0;
60+
}
61+
catch (InvalidOperationException exception) when (exception.Message.StartsWith("No Serilog:Using configuration section is defined and no Serilog assemblies were found."))
62+
{
63+
Console.WriteLine("Expected exception");
64+
return 0;
65+
}
66+
catch (Exception exception)
67+
{
68+
Console.Error.WriteLine(exception);
69+
return 1;
70+
}
Binary file not shown.

test/TestApp-net9.0/TestApp.csproj

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net48</TargetFramework>
6+
<DebugType>embedded</DebugType>
7+
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
8+
<GenerateSupportedRuntime>false</GenerateSupportedRuntime>
9+
<PublishReferencesDocumentationFiles>false</PublishReferencesDocumentationFiles>
10+
<AllowedReferenceRelatedFileExtensions>none</AllowedReferenceRelatedFileExtensions>
11+
<UseCurrentRuntimeIdentifier>true</UseCurrentRuntimeIdentifier>
12+
<SelfContained>true</SelfContained>
13+
<GenerateDocumentationFile>false</GenerateDocumentationFile>
14+
<!-- Ignore vulnerable (framework) packages; this app is not published. -->
15+
<NoWarn>NU1902;NU1903</NoWarn>
16+
</PropertyGroup>
17+
18+
<ItemGroup Condition="$(Configuration) == 'Debug'">
19+
<ProjectReference Include="..\..\src\Serilog.Settings.Configuration\Serilog.Settings.Configuration.csproj" />
20+
</ItemGroup>
21+
22+
<ItemGroup Condition="$(Configuration) == 'Release'">
23+
<PackageReference Include="Serilog.Settings.Configuration" Version="[0.0.0-IntegrationTest.0]" />
24+
</ItemGroup>
25+
26+
<ItemGroup>
27+
<PackageReference Include="Costura.Fody" Version="5.7.0" PrivateAssets="all" />
28+
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
29+
<PackageReference Include="Serilog.Enrichers.Thread" Version="4.0.0" />
30+
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
31+
</ItemGroup>
32+
33+
</Project>

test/TestApp-net9.0/nuget.config

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<config>
4+
<add key="globalPackagesFolder" value="packages" />
5+
</config>
6+
<packageSources>
7+
<clear />
8+
<add key="local" value="." />
9+
<add key="nuget" value="https://api.nuget.org/v3/index.json" />
10+
</packageSources>
11+
</configuration>

test/TestApp/TestApp.csproj

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
<UseCurrentRuntimeIdentifier>true</UseCurrentRuntimeIdentifier>
1212
<SelfContained>true</SelfContained>
1313
<GenerateDocumentationFile>false</GenerateDocumentationFile>
14+
<!-- Ignore vulnerable (framework) packages; this app is not published. -->
15+
<NoWarn>NU1902;NU1903</NoWarn>
1416
</PropertyGroup>
1517

1618
<ItemGroup Condition="$(Configuration) == 'Debug'">
@@ -26,9 +28,6 @@
2628
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
2729
<PackageReference Include="Serilog.Enrichers.Thread" Version="4.0.0" />
2830
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
29-
<PackageReference Include="System.Net.Http" Version="4.3.4" />
30-
<PackageReference Include="System.Private.Uri" Version="4.3.2" />
31-
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
3231
</ItemGroup>
3332

3433
</Project>

0 commit comments

Comments
 (0)