Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 3 additions & 3 deletions .github/workflows/continuous-delivery.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- name: GetSemVer
id: get-semver
run: |
dotnet tool install --global GitVersion.Tool --version 6.4.0
dotnet tool install --global GitVersion.Tool --version 6.5.1
output=$(dotnet-gitversion)
semver=$(echo $output | grep -oP '"SemVer"\s*:\s*"\K[^"]+')
echo $output
Expand Down Expand Up @@ -61,7 +61,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.x.x
dotnet-version: 10.x.x
- name: Build & Test
run: ./Build/build-and-test.ps1
shell: pwsh
Expand Down Expand Up @@ -100,7 +100,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
dotnet-version: 10.x.x
- name: Build & Test
run: ./Build/build-and-test.ps1
shell: pwsh
Expand Down
6 changes: 3 additions & 3 deletions Build/build-osx-installer.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ $ErrorActionPreference = "Stop"

$repoRootPath = (Resolve-Path "$PSScriptRoot/../").Path
$releasePath = "$repoRootPath/Installer/Elzik.FmSync.OsxInstaller/x64/Release/"
$consolePublishSourcePath = "$repoRootPath/src/Elzik.FmSync.Console/bin/x64/Release/net8.0/osx-x64/publish"
$workerPublishSourcePath = "$repoRootPath/src/Elzik.FmSync.Worker/bin/x64/Release/net8.0/osx-x64/publish"
$consolePublishSourcePath = "$repoRootPath/src/Elzik.FmSync.Console/bin/x64/Release/net10.0/osx-x64/publish"
$workerPublishSourcePath = "$repoRootPath/src/Elzik.FmSync.Worker/bin/x64/Release/net10.0/osx-x64/publish"

If((Test-Path -PathType container "$releasePath"))
{
Expand Down Expand Up @@ -72,7 +72,7 @@ Compress-Archive `
-Force
Test-ExitCode

dotnet tool update --global GitVersion.Tool --version 6.1.0
dotnet tool update --global GitVersion.Tool --version 6.5.1
Test-ExitCode

$SemVer = (dotnet-gitversion | ConvertFrom-Json).SemVer
Expand Down
32 changes: 16 additions & 16 deletions Elzik.FmSync.sln
Original file line number Diff line number Diff line change
@@ -1,24 +1,10 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.4.33205.214
# Visual Studio Version 18
VisualStudioVersion = 18.0.11205.157 d18.0
Comment on lines +3 to +4
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

Visual Studio 2025 version 18 .sln file format VisualStudioVersion specification

💡 Result:

Short answer: In VS 2025 (major version 18) the .sln file uses the same VisualStudioVersion/MinimumVisualStudioVersion lines; VisualStudioVersion should contain the full IDE build string starting with "18." (e.g. VisualStudioVersion = 18.0.) so Visual Studio can identify the creating IDE/build. The MinimumVisualStudioVersion remains the older-minimum token used for compatibility. [1][2][3]

Notes:

  • VisualStudioVersion is informational and used by Visual Studio for compatibility/upgrade checks; keep it in the form "Major.Minor.Build.Revision" produced by the IDE. [1].
  • Microsoft is introducing a new SLNX format but existing .sln files and their VisualStudioVersion entries remain supported; migration tools exist in the .NET CLI/Visual Studio. [1][4]

Sources:
[1] Visual Studio Blog — New, Simpler Solution File Format.
[2] .sln examples / format references (generic .sln structure).
[3] dotnet/sdk GitHub issues discussing .sln → .slnx migration.


Remove malformed suffix from VisualStudioVersion.

The VisualStudioVersion value 18.0.11205.157 d18.0 contains an invalid d18.0 suffix. Visual Studio solution files expect VisualStudioVersion in the format Major.Minor.Build.Revision (e.g., 18.0.11205.157). Change line 4 to:

VisualStudioVersion = 18.0.11205.157
🤖 Prompt for AI Agents
In Elzik.FmSync.sln around lines 3 to 4, the VisualStudioVersion value includes
a malformed suffix ("d18.0"); update the line to remove the suffix so the value
is a proper Major.Minor.Build.Revision string (e.g., change "VisualStudioVersion
= 18.0.11205.157 d18.0" to "VisualStudioVersion = 18.0.11205.157").

MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elzik.FmSync.Worker", "src\Elzik.FmSync.Worker\Elzik.FmSync.Worker.csproj", "{1035A230-3923-494E-A01A-C41670922EE9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elzik.FmSync.Console", "src\Elzik.FmSync.Console\Elzik.FmSync.Console.csproj", "{8313B3C5-6FF8-449E-B3DE-6304BAACD62C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elzik.FmSync.Application", "src\Elzik.FmSync.Application\Elzik.FmSync.Application.csproj", "{FF4D804A-C032-4E93-92A0-14580AA7D0CE}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{CF17A395-4536-42A5-B10B-D2D8EC602BC3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elzik.FmSync.Infrastructure", "src\Elzik.FmSync.Infrastructure\Elzik.FmSync.Infrastructure.csproj", "{7A787CA3-E960-4FC2-8703-D0E0031EED46}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elzik.FmSync.Domain", "src\Elzik.FmSync.Domain\Elzik.FmSync.Domain.csproj", "{5DB426BF-24B5-4E04-A593-A803FE5DC304}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elzik.FmSync.Infrastructure.Tests.Integration", "tests\Elzik.FmSync.Infrastructure.Tests.Integration\Elzik.FmSync.Infrastructure.Tests.Integration.csproj", "{1367919E-184E-4550-B8BB-ECB37C056594}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elzik.FmSync.Application.Tests.Unit", "tests\Elzik.FmSync.Application.Tests.Unit\Elzik.FmSync.Application.Tests.Unit.csproj", "{A3BB6C79-4D8F-4515-92B5-F169F929AF94}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{6839B032-FEC5-4978-A064-BD18FB683118}"
ProjectSection(SolutionItems) = preProject
global.json = global.json
Expand All @@ -39,6 +25,20 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{0FE56BA0
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Installer", "Installer", "{069FD2C8-3AFB-4D61-A19A-3257331FC223}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elzik.FmSync.Worker", "src\Elzik.FmSync.Worker\Elzik.FmSync.Worker.csproj", "{1035A230-3923-494E-A01A-C41670922EE9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elzik.FmSync.Console", "src\Elzik.FmSync.Console\Elzik.FmSync.Console.csproj", "{8313B3C5-6FF8-449E-B3DE-6304BAACD62C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elzik.FmSync.Application", "src\Elzik.FmSync.Application\Elzik.FmSync.Application.csproj", "{FF4D804A-C032-4E93-92A0-14580AA7D0CE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elzik.FmSync.Infrastructure", "src\Elzik.FmSync.Infrastructure\Elzik.FmSync.Infrastructure.csproj", "{7A787CA3-E960-4FC2-8703-D0E0031EED46}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elzik.FmSync.Domain", "src\Elzik.FmSync.Domain\Elzik.FmSync.Domain.csproj", "{5DB426BF-24B5-4E04-A593-A803FE5DC304}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elzik.FmSync.Infrastructure.Tests.Integration", "tests\Elzik.FmSync.Infrastructure.Tests.Integration\Elzik.FmSync.Infrastructure.Tests.Integration.csproj", "{1367919E-184E-4550-B8BB-ECB37C056594}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elzik.FmSync.Application.Tests.Unit", "tests\Elzik.FmSync.Application.Tests.Unit\Elzik.FmSync.Application.Tests.Unit.csproj", "{A3BB6C79-4D8F-4515-92B5-F169F929AF94}"
EndProject
Project("{B7DD6F7E-DEF8-4E67-B5B7-07EF123DB6F0}") = "Elzik.FmSync.WindowsInstaller", "Installer\Elzik.FmSync.WindowsInstaller\Elzik.FmSync.WindowsInstaller.wixproj", "{534679A3-D29B-4D63-882B-C09F4D0EA8CB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elzik.FmSync.Worker.Tests.Functional", "tests\Elzik.FmSync.Worker.Tests.Functional\Elzik.FmSync.Worker.Tests.Functional.csproj", "{B38B9BF5-29FF-44C2-B243-CC5D548B1C6B}"
Expand Down
2 changes: 1 addition & 1 deletion global.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"sdk": {
"version": "8.0.100",
"version": "10.0.100",
"rollForward": "latestMinor"
}
Comment on lines 1 to 5
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# Find GitHub Actions workflow files
fd -t f -e yml -e yaml '.github/workflows/'

Repository: elzik/fmsync

Length of output: 433


🏁 Script executed:

# Find GitHub Actions workflow files using correct syntax
fd . '.github/workflows/' -e yml -e yaml

Repository: elzik/fmsync

Length of output: 97


🏁 Script executed:

# Examine the workflow file to find check-release-requirement job
cat -n '.github/workflows/continuous-delivery.yml'

Repository: elzik/fmsync

Length of output: 6338


🏁 Script executed:

# Check if there are any other configuration files that specify .NET version requirements
# Look for .NET version specifications
rg -t json "dotnet|sdk" --max-count 5

Repository: elzik/fmsync

Length of output: 165


🏁 Script executed:

# Check the csproj or project files to understand the target framework
fd -t f -e csproj -e fsproj | head -5 | xargs -I {} sh -c 'echo "=== {} ===" && head -15 {}'

Repository: elzik/fmsync

Length of output: 2444


Add .NET SDK setup step to the check-release-requirement job.

The job runs dotnet tool install and dotnet-gitversion commands on ubuntu-latest without explicitly setting up the .NET SDK. Other jobs in the workflow use actions/setup-dotnet@v4, but this first job that runs GitVersion does not. This causes the pipeline to fail when the SDK is not available on the runner.

Add a setup step after checkout:

    steps:
    - uses: actions/checkout@v4
      with:
        fetch-depth: 0
    - name: Setup .NET
      uses: actions/setup-dotnet@v4
      with:
        dotnet-version: 10.x.x
    - name: GetSemVer
      ...
🧰 Tools
🪛 GitHub Actions: Continuous Delivery

[error] 1-1: Requested .NET SDK 10.0.100 not found. global.json points to 10.0.100; installed SDKs do not include it. Install the 10.0.100 SDK or update global.json.

🤖 Prompt for AI Agents
In global.json lines 1-5, the workflow's check-release-requirement job invokes
dotnet tool commands without ensuring the .NET SDK is installed; add a step
immediately after the actions/checkout@v4 step to run actions/setup-dotnet@v4
with with: dotnet-version: 10.x.x (or 10.0.100 to match global.json) so the SDK
is available before running dotnet tool install / dotnet-gitversion (i.e.,
insert the Setup .NET step between checkout and the GetSemVer / dotnet tool
commands).

}
12 changes: 6 additions & 6 deletions src/Elzik.FmSync.Application/Elzik.FmSync.Application.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<NuGetAuditMode>all</NuGetAuditMode>
Expand All @@ -12,14 +12,14 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="GitVersion.MsBuild" Version="6.4.0">
<PackageReference Include="GitVersion.MsBuild" Version="6.5.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.9" />
<PackageReference Include="Microsoft.Extensions.Options" Version="9.0.9" />
<PackageReference Include="Polly.Core" Version="8.6.4" />
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.15.0.120848">
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="10.0.0" />
<PackageReference Include="Polly.Core" Version="8.6.5" />
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.16.0.128591">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
20 changes: 10 additions & 10 deletions src/Elzik.FmSync.Console/Elzik.FmSync.Console.csproj
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>Elzik.FmSync</RootNamespace>
Expand All @@ -15,19 +15,19 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="GitVersion.MsBuild" Version="6.4.0">
<PackageReference Include="GitVersion.MsBuild" Version="6.5.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.9" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.9" />
<PackageReference Include="Microsoft.Extensions.Options" Version="9.0.9" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="10.0.0" />
<PackageReference Include="Serilog" Version="4.3.0" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="9.0.0" />
<PackageReference Include="Serilog.Settings.Configuration" Version="9.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="10.0.0" />
<PackageReference Include="Serilog.Settings.Configuration" Version="10.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="6.1.1" />
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.15.0.120848">
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.16.0.128591">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
12 changes: 2 additions & 10 deletions src/Elzik.FmSync.Console/appSettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,10 @@
"FilenamePattern": "*.md"
},
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
"Using": [ "Serilog.Sinks.Console" ],
"MinimumLevel": "Warning",
"WriteTo": [
{ "Name": "Console" },
{
"Name": "File",
"Args": {
"path": "[PLATFORM_SPECIFIC_LOG_PATH]/Elzik.FmSync.Console.log",
"rollingInterval": "Day",
"retainedFileCountLimit": "7"
}
}
{ "Name": "Console" }
]
}
}
6 changes: 3 additions & 3 deletions src/Elzik.FmSync.Domain/Elzik.FmSync.Domain.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<NuGetAuditMode>all</NuGetAuditMode>
Expand All @@ -12,11 +12,11 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="GitVersion.MsBuild" Version="6.4.0">
<PackageReference Include="GitVersion.MsBuild" Version="6.5.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.15.0.120848">
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.16.0.128591">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<NuGetAuditMode>all</NuGetAuditMode>
Expand All @@ -12,12 +12,12 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="GitVersion.MsBuild" Version="6.4.0">
<PackageReference Include="GitVersion.MsBuild" Version="6.5.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Options" Version="9.0.9" />
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.15.0.120848">
<PackageReference Include="Microsoft.Extensions.Options" Version="10.0.0" />
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.16.0.128591">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
22 changes: 11 additions & 11 deletions src/Elzik.FmSync.Worker/Elzik.FmSync.Worker.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Worker">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UserSecretsId>dotnet-Elzik.FmSync.Worker-4d67e15b-f529-48cc-919a-3c678579aeb2</UserSecretsId>
Expand All @@ -13,20 +13,20 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="GitVersion.MsBuild" Version="6.4.0">
<PackageReference Include="GitVersion.MsBuild" Version="6.5.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.9" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.9" />
<PackageReference Include="Microsoft.Extensions.Options" Version="9.0.9" />
<PackageReference Include="Polly.Extensions" Version="8.6.4" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="10.0.0" />
<PackageReference Include="Polly.Extensions" Version="8.6.5" />
<PackageReference Include="Serilog" Version="4.3.0" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="9.0.0" />
<PackageReference Include="Serilog.Settings.Configuration" Version="9.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="10.0.0" />
<PackageReference Include="Serilog.Settings.Configuration" Version="10.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="6.1.1" />
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.15.0.120848">
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.16.0.128591">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand All @@ -37,7 +37,7 @@
</PropertyGroup>

<ItemGroup Condition="'$(OS)' == 'Windows_NT'">
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="10.0.0" />
</ItemGroup>

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

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<NuGetAuditMode>all</NuGetAuditMode>
Expand All @@ -27,22 +27,23 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="NSubstitute" Version="5.3.0" />
<PackageReference Include="NSubstitute.Analyzers.CSharp" Version="1.0.17">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Polly.Testing" Version="8.6.4" />
<PackageReference Include="Polly.Testing" Version="8.6.5" />
<PackageReference Include="Shouldly" Version="4.3.0" />
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.15.0.120848">
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.16.0.128591">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.analyzers" Version="1.24.0" />
<PackageReference Include="xunit.analyzers" Version="1.26.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
23 changes: 0 additions & 23 deletions tests/Elzik.FmSync.Console.Tests.Functional/ConsoleTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ public class ConsoleTests
private readonly Process _consoleProcess;
private const string FunctionalTestFilesPath = "../../../../TestFiles/Functional/Console";
private const string SerlogPathKey = "Serilog:WriteTo:1:Args:path";
private readonly string _logPath;
private readonly string _buildOutputDirectory;

public ConsoleTests(ITestOutputHelper testOutputHelper)
Expand Down Expand Up @@ -52,11 +51,6 @@ public ConsoleTests(ITestOutputHelper testOutputHelper)
{
throw new InvalidOperationException($"No log file path set in appSettings at {SerlogPathKey}");
}
_logPath = configurationSection.Value;
if (File.Exists(_logPath))
{
File.Delete(_logPath);
}
}

[Fact]
Expand Down Expand Up @@ -84,23 +78,6 @@ public async Task Synchronise_EmptyFolder_LogsToConsole()
consoleOutputLines.ShouldContain(line => line.Contains("Synchronised 0 files out of a total 0 in "));
}

[Fact]
public async Task Synchronise_EmptyFolder_LogsToFile()
{
// Act
ValidateConsoleProcessStart(_consoleProcess!.Start());
_consoleProcess.BeginOutputReadLine();
await _consoleProcess.WaitForExitAsync();

// Assert
var fileLog = await File.ReadAllTextAsync(_logPath);
var fileLogLines = fileLog.Split([Environment.NewLine], StringSplitOptions.None);
var expectedWorkingDirectoryLogText = $"Synchronising *.md files in {_buildOutputDirectory}".TrimEnd('\\', '/');
_testOutputHelper.WriteLine($"expectedWorkingDirectoryLogText = {expectedWorkingDirectoryLogText}");
fileLogLines.ShouldContain(line => line.EndsWith(expectedWorkingDirectoryLogText));
fileLogLines.ShouldContain(line => line.Contains("Synchronised 0 files out of a total 0 in "));
}

[Fact(Timeout = 5000)]
public async Task ConsoleAppIsExecuted_WithMismatchingFrontMatterAndFileCreatedDates_FileCreatedDateIsUpdated()
{
Expand Down
Loading
Loading