Skip to content
Draft
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 .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
*.ps binary

# Preserve authoritative runtime notice bytes exactly as published.
/LICENSES/dotnet-runtime-8.0.31-LICENSE.txt -text whitespace=cr-at-eol
/LICENSES/dotnet-runtime-8.0.31-THIRD-PARTY-NOTICES.txt -text whitespace=cr-at-eol
/LICENSES/windowsdesktop-runtime-8.0.31-LICENSE.txt -text whitespace=cr-at-eol
/LICENSES/dotnet-runtime-10.0.13-LICENSE.txt -text whitespace=cr-at-eol
/LICENSES/dotnet-runtime-10.0.13-THIRD-PARTY-NOTICES.txt -text -whitespace
/LICENSES/windowsdesktop-runtime-10.0.13-LICENSE.txt -text whitespace=cr-at-eol

# These upstream files are hash-verified and must retain original bytes/spacing.
/LICENSES/LibVLCThirdParty/** -text -whitespace
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ jobs:
$revision = (& git rev-parse HEAD).Trim()
if ($LASTEXITCODE -ne 0 -or $revision -notmatch '^[0-9a-f]{40}$') { throw 'Exact source revision unavailable.' }
dotnet run --project tools/Wisp.SymbolCatalog/Wisp.SymbolCatalog.csproj --configuration Release -- `
src/Wisp.App/bin/Release/net8.0-windows/win-x64 outputs/Wisp-diagnostic-symbols.json $revision
src/Wisp.App/bin/Release/net10.0-windows/win-x64 outputs/Wisp-diagnostic-symbols.json $revision
if ($LASTEXITCODE -ne 0) { throw 'Diagnostic symbol catalog export failed.' }
$catalog = Get-Content -LiteralPath outputs/Wisp-diagnostic-symbols.json -Raw | ConvertFrom-Json
if ($catalog.sourceRevision -cne $revision -or $catalog.sourceState -ne 'clean') { throw 'Diagnostic symbols do not identify the clean CI source.' }
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ remain subject to the same review, validation, and merge-approval rules.

## Validation

Wisp requires Windows, the .NET 8 SDK selected by `global.json`, and Python
Wisp requires Windows, the .NET 10 SDK selected by `global.json`, and Python
3.12 or later. CI pins Python 3.14.7. Inno Setup 6 is required only for
installer packaging.

Expand Down

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,7 @@ builds, validation boundary, and update behavior.

## Build from source

Use a Git checkout and the .NET 8 SDK selected by `global.json`. Building the
Use a Git checkout and the .NET 10 SDK selected by `global.json`. Building the
native renderer also requires Visual Studio C++ build tools for x64 and a
Windows SDK containing `fxc.exe`; the application build compiles and copies
`Wisp.NativeRenderer.dll` automatically. Python 3.12 or later runs the offline
Expand Down
12 changes: 6 additions & 6 deletions THIRD-PARTY-NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@
Wisp includes components that are not covered by the Wisp Proprietary Source
License.

## .NET 8.0.31
## .NET 10.0.13

The self-contained Windows build includes components from the .NET runtime and
Windows Desktop runtime. Their exact package notices are preserved in:

- `LICENSES/dotnet-runtime-8.0.31-LICENSE.txt`
- `LICENSES/dotnet-runtime-8.0.31-THIRD-PARTY-NOTICES.txt`
- `LICENSES/windowsdesktop-runtime-8.0.31-LICENSE.txt`
- `LICENSES/dotnet-runtime-10.0.13-LICENSE.txt`
- `LICENSES/dotnet-runtime-10.0.13-THIRD-PARTY-NOTICES.txt`
- `LICENSES/windowsdesktop-runtime-10.0.13-LICENSE.txt`

The runtime license and third-party notices are copied byte-for-byte from
[Microsoft's .NET 8.0.31 runtime package](https://www.nuget.org/packages/Microsoft.NETCore.App.Runtime.win-x64/8.0.31).
[Microsoft's .NET 10.0.13 runtime package](https://www.nuget.org/packages/Microsoft.NETCore.App.Runtime.win-x64/10.0.13).
The Windows Desktop license comes from the matching
[Microsoft Windows Desktop runtime package](https://www.nuget.org/packages/Microsoft.WindowsDesktop.App.Runtime.win-x64/8.0.31).
[Microsoft Windows Desktop runtime package](https://www.nuget.org/packages/Microsoft.WindowsDesktop.App.Runtime.win-x64/10.0.13).

## Forza Horizon 6 Game Content

Expand Down
5 changes: 3 additions & 2 deletions docs/DOTNET-10-MIGRATION.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# .NET 10 migration plan

Status: planned; Wisp currently targets .NET 8 and ships its serviced runtime.
This plan does not change the application's target framework or release version.
Status: the source targets .NET 10 with SDK 10.0.402 and bundles the 10.0.13
runtime. The first .NET 10 release requires the acceptance gates below; this
plan does not assign the application release version.

.NET 8 support ends on **November 10, 2026**. .NET 10 is the next LTS target and
is supported through November 14, 2028. Complete the migration and release
Expand Down
8 changes: 4 additions & 4 deletions docs/VALIDATION.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Validation

The current source uses the serviced .NET 8 runtime. The
[.NET 10 migration plan](DOTNET-10-MIGRATION.md) tracks the move to the next LTS
before .NET 8 support ends; it does not change the release gates below.
The current source targets .NET 10 and bundles the serviced 10.0.13 runtime. The
[.NET 10 migration plan](DOTNET-10-MIGRATION.md) lists the additional acceptance
gates for the first .NET 10 release; it does not change the release gates below.

## Release gate

Expand Down Expand Up @@ -33,7 +33,7 @@ alone does not satisfy this part of the release gate.

Packaging must additionally verify the staged executable version, PE identity,
update-helper identity, the staged `Wisp.NativeRenderer.dll`, Native asset
manifest, bundled .NET 8.0.31 notices, and the installer/checksum pair before
manifest, bundled .NET 10.0.13 notices, and the installer/checksum pair before
promotion.

### Steam and Xbox verification
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.426",
"version": "10.0.402",
"rollForward": "latestPatch"
}
}
2 changes: 1 addition & 1 deletion installer/Build-Installer.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -1115,7 +1115,7 @@ try {

$dotnetExecutable = Resolve-Executable $DotNet $dotnetCandidates @('dotnet.exe', 'dotnet')
if ($null -eq $dotnetExecutable) {
throw 'The .NET 8 SDK was not found. Install it from https://dotnet.microsoft.com/download/dotnet/8.0 or pass -DotNet <path>.'
throw 'The .NET 10 SDK was not found. Install it from https://dotnet.microsoft.com/download/dotnet/10.0 or pass -DotNet <path>.'
}

$innoExecutable = Resolve-Executable $InnoCompiler $innoCandidates @('ISCC.exe', 'ISCC')
Expand Down
28 changes: 14 additions & 14 deletions installer/Build-PrivateDiagnosticInstaller.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,9 @@ function Assert-PrivateTestOutputDirectory {
param([Parameter(Mandatory)][string]$Directory, [Parameter(Mandatory)][string]$RepositoryRoot)
$repositoryRootPath = [IO.Path]::GetFullPath($RepositoryRoot).TrimEnd('\', '/')
$target = [IO.Path]::GetFullPath($Directory).TrimEnd('\', '/')
$allowed = @('tests/Wisp.Core.Tests/bin/Release/net8.0-windows', 'tests/Wisp.Telemetry.Tests/bin/Release/net8.0',
'tests/Wisp.App.Tests/bin/Release/net8.0-windows', 'tests/Wisp.Update.Tests/bin/Release/net8.0-windows',
'tests/Wisp.Updater.Tests/bin/Release/net8.0-windows', 'tools/Wisp.UiReview/bin/Release/net8.0-windows') |
$allowed = @('tests/Wisp.Core.Tests/bin/Release/net10.0-windows', 'tests/Wisp.Telemetry.Tests/bin/Release/net10.0',
'tests/Wisp.App.Tests/bin/Release/net10.0-windows', 'tests/Wisp.Update.Tests/bin/Release/net10.0-windows',
'tests/Wisp.Updater.Tests/bin/Release/net10.0-windows', 'tools/Wisp.UiReview/bin/Release/net10.0-windows') |
ForEach-Object { [IO.Path]::GetFullPath((Join-Path $repositoryRootPath $_)).TrimEnd('\', '/') }
if ($target -notin $allowed) { throw 'Private component copies are limited to the six known generated test outputs.' }
for ($ancestor = $target; ; $ancestor = [IO.Path]::GetDirectoryName($ancestor)) {
Expand All @@ -136,7 +136,7 @@ function Sync-PrivateLosslessTestPayload {
[Parameter(Mandatory)][string]$RepositoryRoot, [Parameter(Mandatory)][hashtable]$ExpectedHashes)
$repositoryRootPath = [IO.Path]::GetFullPath($RepositoryRoot).TrimEnd('\', '/')
$target = [IO.Path]::GetFullPath($TestDirectory).TrimEnd('\', '/')
$allowed = @('tests/Wisp.App.Tests/bin/Release/net8.0-windows', 'tools/Wisp.UiReview/bin/Release/net8.0-windows') |
$allowed = @('tests/Wisp.App.Tests/bin/Release/net10.0-windows', 'tools/Wisp.UiReview/bin/Release/net10.0-windows') |
ForEach-Object { [IO.Path]::GetFullPath((Join-Path $repositoryRootPath $_)).TrimEnd('\', '/') }
if ($target -notin $allowed) { throw 'Decoder synchronization is limited to the two known generated test outputs.' }
# Do not let any existing generated-output ancestor redirect writes or removal.
Expand Down Expand Up @@ -275,12 +275,12 @@ try {
# Wisp product components are replaced before --no-build test execution.
$componentNames = @('Wisp.dll', 'Wisp.Core.dll', 'Wisp.Telemetry.dll', 'Wisp.Update.dll', 'Wisp.NativeRenderer.dll', 'Wisp.Recorder.exe')
$testHostDirectories = @(
'tests/Wisp.Core.Tests/bin/Release/net8.0-windows',
'tests/Wisp.Telemetry.Tests/bin/Release/net8.0',
'tests/Wisp.App.Tests/bin/Release/net8.0-windows',
'tests/Wisp.Update.Tests/bin/Release/net8.0-windows',
'tests/Wisp.Updater.Tests/bin/Release/net8.0-windows',
'tools/Wisp.UiReview/bin/Release/net8.0-windows')
'tests/Wisp.Core.Tests/bin/Release/net10.0-windows',
'tests/Wisp.Telemetry.Tests/bin/Release/net10.0',
'tests/Wisp.App.Tests/bin/Release/net10.0-windows',
'tests/Wisp.Update.Tests/bin/Release/net10.0-windows',
'tests/Wisp.Updater.Tests/bin/Release/net10.0-windows',
'tools/Wisp.UiReview/bin/Release/net10.0-windows')
foreach ($directory in $testHostDirectories) {
Assert-PrivateTestOutputDirectory (Join-Path $repository $directory) $repository
}
Expand All @@ -296,7 +296,7 @@ try {
}
}
}
foreach ($directory in @('tests/Wisp.App.Tests/bin/Release/net8.0-windows', 'tools/Wisp.UiReview/bin/Release/net8.0-windows')) {
foreach ($directory in @('tests/Wisp.App.Tests/bin/Release/net10.0-windows', 'tools/Wisp.UiReview/bin/Release/net10.0-windows')) {
Sync-PrivateLosslessTestPayload $publishDirectory (Join-Path $repository $directory) $repository $decoderHashes
$null = Assert-ClipDecoders (Join-Path $repository $directory) $decoderManifest $mpvManifest $mpvDependency
}
Expand Down Expand Up @@ -326,14 +326,14 @@ try {

foreach ($name in @('Wisp.dll', 'Wisp.Core.dll', 'Wisp.Telemetry.dll', 'Wisp.Update.dll', 'Wisp.NativeRenderer.dll', 'Wisp.Recorder.exe')) {
$publishedHash = (Get-FileHash -LiteralPath (Join-Path $publishDirectory $name) -Algorithm SHA256).Hash
foreach ($testedDirectory in @('tests/Wisp.App.Tests/bin/Release/net8.0-windows', 'tools/Wisp.UiReview/bin/Release/net8.0-windows')) {
foreach ($testedDirectory in @('tests/Wisp.App.Tests/bin/Release/net10.0-windows', 'tools/Wisp.UiReview/bin/Release/net10.0-windows')) {
if ($publishedHash -cne (Get-FileHash -LiteralPath (Join-Path $repository "$testedDirectory/$name") -Algorithm SHA256).Hash) {
throw "Published $name differs from the tested and reviewed assembly."
}
}
}
foreach ($directory in @($publishDirectory, (Join-Path $repository 'tests/Wisp.App.Tests/bin/Release/net8.0-windows'),
(Join-Path $repository 'tools/Wisp.UiReview/bin/Release/net8.0-windows'))) {
foreach ($directory in @($publishDirectory, (Join-Path $repository 'tests/Wisp.App.Tests/bin/Release/net10.0-windows'),
(Join-Path $repository 'tools/Wisp.UiReview/bin/Release/net10.0-windows'))) {
$verified = Assert-ClipDecoders $directory $decoderManifest $mpvManifest $mpvDependency
foreach ($relative in $decoderHashes.Keys) {
if ($verified[$relative] -cne $decoderHashes[$relative]) { throw 'The decoder payload changed during private validation.' }
Expand Down
10 changes: 5 additions & 5 deletions src/Wisp.App/Clips/ClipBufferStore.cs
Original file line number Diff line number Diff line change
Expand Up @@ -311,11 +311,11 @@ private static (ulong Bytes, bool Incomplete, bool Limited) CleanupSpool(SafeFil
var remaining = Directory.EnumerateFileSystemEntries(spoolPath).Take(maximumEntries + 1).Select(Path.GetFileName).ToArray();
if (remaining.Length == 0) NativeFile.Delete(directory);
else foreach (var name in remaining.Take(maximumEntries))
{
if (name is null) continue;
try { using var data = NativeFile.Open(directory, name, NativeFile.ReadAccess, 3, 1, false); retainedBytes = checked(retainedBytes + NativeFile.Identity(data).Bytes); }
catch (Exception error) when (StorageError(error)) { incomplete = true; }
}
{
if (name is null) continue;
try { using var data = NativeFile.Open(directory, name, NativeFile.ReadAccess, 3, 1, false); retainedBytes = checked(retainedBytes + NativeFile.Identity(data).Bytes); }
catch (Exception error) when (StorageError(error)) { incomplete = true; }
}
}
catch (Exception error) when (StorageError(error)) { incomplete = true; }
return (retainedBytes, incomplete || limited, limited);
Expand Down
10 changes: 5 additions & 5 deletions src/Wisp.App/Clips/RecorderThumbnailProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -127,11 +127,11 @@ internal RecorderThumbnailProvider(string helperPath) : this(new RecorderThumbna
image.Freeze();
}
if (image is not null) lock (_sync)
{
ObjectDisposedException.ThrowIf(_disposed, this);
_cache.AddFirst((metadata.Key, image));
if (_cache.Count > CacheCapacity) _cache.RemoveLast();
}
{
ObjectDisposedException.ThrowIf(_disposed, this);
_cache.AddFirst((metadata.Key, image));
if (_cache.Count > CacheCapacity) _cache.RemoveLast();
}
return image;
}
finally { DecoderGate.Release(); }
Expand Down
1 change: 1 addition & 0 deletions src/Wisp.App/FeatureTourBanner.xaml.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System.Windows.Controls;
namespace Wisp.App;

public partial class FeatureTourBanner : UserControl
{
public FeatureTourBanner() => InitializeComponent();
Expand Down
10 changes: 5 additions & 5 deletions src/Wisp.App/Supplementary/SupplementaryIncident.cs
Original file line number Diff line number Diff line change
Expand Up @@ -172,11 +172,11 @@ internal static string Signature(SupplementaryIncident value)
var text = new StringBuilder($"wisp-tools-incident-v{value.SchemaVersion}\n").Append(value.Category).Append('\n').Append(value.Reason).Append('\n')
.Append(value.FailureStage ?? "").Append('\n').Append(value.Code?.ToString(CultureInfo.InvariantCulture) ?? "").Append('\n');
if (value.Exceptions is { IsDefault: false } exceptions) foreach (var exception in exceptions)
{
text.Append(exception.Type).Append('\n').Append(exception.Code.ToString(CultureInfo.InvariantCulture)).Append('\n');
foreach (var method in exception.Methods) text.Append(method).Append('\n');
text.Append('\n');
}
{
text.Append(exception.Type).Append('\n').Append(exception.Code.ToString(CultureInfo.InvariantCulture)).Append('\n');
foreach (var method in exception.Methods) text.Append(method).Append('\n');
text.Append('\n');
}
if (value.SchemaVersion >= 2 && value.Recorder?.Components is { IsDefault: false } components)
foreach (var component in components)
text.Append(component.Component).Append('\n').Append(component.Reason).Append('\n')
Expand Down
10 changes: 5 additions & 5 deletions src/Wisp.App/Wisp.App.csproj
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<RuntimeFrameworkVersion>8.0.31</RuntimeFrameworkVersion>
<TargetFramework>net10.0-windows</TargetFramework>
<RuntimeFrameworkVersion>10.0.13</RuntimeFrameworkVersion>
<UseWPF>true</UseWPF>
<ApplicationManifest>app.manifest</ApplicationManifest>
<ApplicationIcon>Assets\Wisp.ico</ApplicationIcon>
Expand Down Expand Up @@ -118,8 +118,8 @@
<Content Include="..\..\LICENSES\GPL-3.0.txt" Link="Licenses\GPL-3.0.txt" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
<Content Include="..\..\LICENSES\libmpv-thirdparty\**\*" Link="Licenses\libmpv-thirdparty\%(RecursiveDir)%(Filename)%(Extension)" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
<Content Include="..\..\LICENSES\libmpv-source-manifest.json" Link="Licenses\libmpv-source-manifest.json" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
<Content Include="..\..\LICENSES\dotnet-runtime-8.0.31-LICENSE.txt" Link="Licenses\dotnet-runtime-8.0.31-LICENSE.txt" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
<Content Include="..\..\LICENSES\dotnet-runtime-8.0.31-THIRD-PARTY-NOTICES.txt" Link="Licenses\dotnet-runtime-8.0.31-THIRD-PARTY-NOTICES.txt" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
<Content Include="..\..\LICENSES\windowsdesktop-runtime-8.0.31-LICENSE.txt" Link="Licenses\windowsdesktop-runtime-8.0.31-LICENSE.txt" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
<Content Include="..\..\LICENSES\dotnet-runtime-10.0.13-LICENSE.txt" Link="Licenses\dotnet-runtime-10.0.13-LICENSE.txt" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
<Content Include="..\..\LICENSES\dotnet-runtime-10.0.13-THIRD-PARTY-NOTICES.txt" Link="Licenses\dotnet-runtime-10.0.13-THIRD-PARTY-NOTICES.txt" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
<Content Include="..\..\LICENSES\windowsdesktop-runtime-10.0.13-LICENSE.txt" Link="Licenses\windowsdesktop-runtime-10.0.13-LICENSE.txt" CopyToOutputDirectory="PreserveNewest" CopyToPublishDirectory="PreserveNewest" />
</ItemGroup>
</Project>
4 changes: 2 additions & 2 deletions src/Wisp.App/packages.lock.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"version": 2,
"dependencies": {
"net8.0-windows7.0": {
"net10.0-windows7.0": {
"LibVLCSharp": {
"type": "Direct",
"requested": "[3.10.1, )",
Expand All @@ -27,6 +27,6 @@
"type": "Project"
}
},
"net8.0-windows7.0/win-x64": {}
"net10.0-windows7.0/win-x64": {}
}
}
2 changes: 1 addition & 1 deletion src/Wisp.Core/Tunes/TuneModels.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public sealed record TuneSnapshot(Guid Id, DateTimeOffset CapturedAtUtc, TuneIde
public string? CarName { get; init; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public TunePerformance? Performance { get; init; }
public bool IsComplete => !Fields.IsDefault && Fields.Length == TuneDecoder.FieldCount && Fields.All(field => field is not null && field.Status is
public bool IsComplete => !Fields.IsDefault && Fields.Length == TuneDecoder.FieldCount && Fields.All(f => f is not null && f.Status is
TuneFieldStatus.Available or TuneFieldStatus.NotApplicable or TuneFieldStatus.NotAdjustable);
}

Expand Down
2 changes: 1 addition & 1 deletion src/Wisp.Core/Wisp.Core.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<InternalsVisibleTo Include="Wisp.Core.Tests" />
Expand Down
4 changes: 2 additions & 2 deletions src/Wisp.Core/packages.lock.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"version": 2,
"dependencies": {
"net8.0": {},
"net8.0/win-x64": {}
"net10.0": {},
"net10.0/win-x64": {}
}
}
2 changes: 1 addition & 1 deletion src/Wisp.Telemetry/Wisp.Telemetry.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Wisp.Core\Wisp.Core.csproj" />
Expand Down
4 changes: 2 additions & 2 deletions src/Wisp.Telemetry/packages.lock.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"version": 2,
"dependencies": {
"net8.0": {
"net10.0": {
"wisp.core": {
"type": "Project"
}
},
"net8.0/win-x64": {}
"net10.0/win-x64": {}
}
}
2 changes: 1 addition & 1 deletion src/Wisp.Update/Wisp.Update.csproj
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<TargetFramework>net10.0-windows</TargetFramework>
</PropertyGroup>
</Project>
4 changes: 2 additions & 2 deletions src/Wisp.Update/packages.lock.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"version": 2,
"dependencies": {
"net8.0-windows7.0": {},
"net8.0-windows7.0/win-x64": {}
"net10.0-windows7.0": {},
"net10.0-windows7.0/win-x64": {}
}
}
4 changes: 2 additions & 2 deletions src/Wisp.Updater/Wisp.Updater.csproj
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<RuntimeFrameworkVersion>8.0.31</RuntimeFrameworkVersion>
<TargetFramework>net10.0-windows</TargetFramework>
<RuntimeFrameworkVersion>10.0.13</RuntimeFrameworkVersion>
<PublishSingleFile>true</PublishSingleFile>
<PublishTrimmed>true</PublishTrimmed>
<TrimMode>full</TrimMode>
Expand Down
Loading
Loading