🚧 [Dev][Build] .NET 8 Upgrade (#28655)

* Upgraded projects to target .NET 8

* Updated .NET runtime package targets to use latest .NET 8 build

* Updated PowerToys Interop to target .NET 8

* Switch to use ArgumentNullException.ThrowIfNull

* ArgumentNullException.ThrowIfNull for CropAndLockViewModel

* Switching to ObjectDisposedException.ThrowIf

* Upgrade System.ComponentModel.Composition to 8.0

* ArgumentNullException.ThrowIfNull in Helper

* Switch to StartsWith using StringComparison.Ordinal

* Disabled CA1859, CA1716, SYSLIB1096 analyzers

* Update RIDs to reflect breaking changes in .NET 8

* Updated Microsoft NuGet packages to RC1

* Updated Analyzer package to latest .NET 8 preview package

* CA1854: Use TryGetValue instead of ContainsKey

* [Build] Update TFM to .NET 8 for publish profiles

* [Analyzers] Remove CA1309, CA1860-CA1865, CA1869, CA2208 from warning.

* [Analyzers] Fix for C26495

* [Analyzers] Disable CS1615, CS9191

* [CI] Target .NET 8 in YAML

* [CI] Add .NET preview version flag temporarily.

* [FileLocksmith] Update TFM to .NET 8

* [CI] Switch to preview agent

* [CI] Update NOTICE.md

* [CI] Update Release to target .NET 8 and use Preview agent

* [Analyzers] Disable CA1854

* Fix typo

* Updated Microsoft.CodeAnalysis.NetAnalyzers to latest preview

Updated packages to rc2

* [Analyzers][CPP] Turn off warning for 5271

* [Analyzers][CPP] Turn off warning for 26493

* [KeyboardListener] Add mutex include to resolve error

* [PT Run][Folder] Use static SearchValues to resolve CA1870

* [PowerLauncher] Fix TryGetValue

* [MouseJumpSettings] Use ArgumentNullException.ThrowIfNull

* [Build] Disable parallel dotnet tool restore

* [Build] No cache of dotnet tool packages

* [Build] Temporarily move .NET 8 SDK task before XAML formatting

* [Build][Temp] Try using .NET 7 prior to XAML formatting and then switch to .NET 8 after

* [Build] Use .NET 6 for XAML Styler

* [CI] Updated NOTICE.md

* [FancyZones] Update TFM to .NET 8

* [EnvVar] Update TFM to .NET 8 and update RID

* [EnvVar] Use ArgumentNullException.ThrowIfNull

* [Dev] Updated packages to .NET 8 RTM version

* [Dev] Updated Microsoft.CodeAnalysis.NetAnalyzers to latest

* [CI] Updated NOTICE.md with latest package versions

* Fix new utility target fameworks and runtimeids

* Don't use preview images anymore

* [CI] Add script to update VCToolsVersion environment variable

* [CI] Add Step to Verify VCToolsVersion

* [CI] Use latest flag for vswhere to set proper VCToolsVersion

* Add VCToolsVersion checking to release.yml

* Remove net publishing from local/ PR CI builds

* Revert "Remove net publishing from local/ PR CI builds"

This reverts commit f469778996.

* Only publish necessary projects

* Add verbosity to release pipelines builds of PowerTOys

* Set VCToolsVersion for publish.cmd when called from installer

* [Installer] Moved project publish logic to MSBuild Task

* [CI] Revert using publish.cmd

* [CI] Set VCToolsVersion and unset ClearDevCommandPromptEnvVars property

* Installer publishes for x64 too

* Revert "Add verbosity to release pipelines builds of PowerTOys"

This reverts commit 654d4a7f78.

* [Dev] Update CodeAnalysis library to non-preview package

* Remove unneeded warning removal

* Fix Notice.md

* Rename VCToolsVersion file and task name

* Remove unneeded mutex header include

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
This commit is contained in:
Jeremy Sinclair
2023-11-22 12:46:59 -05:00
committed by GitHub
parent b41129d489
commit b2b2856e52
206 changed files with 473 additions and 841 deletions

View File

@@ -25,10 +25,7 @@ namespace PowerLauncher.Helper
public static void SetDragImage(this IDataObject dataObject, IntPtr hBitmap, int width, int height)
{
if (dataObject == null)
{
throw new ArgumentNullException(nameof(dataObject));
}
ArgumentNullException.ThrowIfNull(dataObject);
IDragSourceHelper dragDropHelper = (IDragSourceHelper)new DragDropHelper();
ShDragImage dragImage = new ShDragImage

View File

@@ -50,9 +50,9 @@ namespace PowerLauncher.Helper
string pVarKey = (string)pVar.Key;
string pVarValue = (string)pVar.Value;
if (machineAndUserVars.ContainsKey(pVarKey))
if (machineAndUserVars.TryGetValue(pVarKey, out string value))
{
if (machineAndUserVars[pVarKey] != pVarValue)
if (value != pVarValue)
{
// Variable value for this process differs form merged machine/user value.
_protectedProcessVariables.Add(pVarKey);

View File

@@ -75,10 +75,7 @@ namespace PowerLauncher.Helper
public static FamilyTypeface ChooseRegularFamilyTypeface(this FontFamily family)
{
if (family == null)
{
throw new ArgumentNullException(nameof(family));
}
ArgumentNullException.ThrowIfNull(family);
return family.FamilyTypefaces.OrderBy(o =>
{
@@ -90,10 +87,7 @@ namespace PowerLauncher.Helper
public static FamilyTypeface ConvertFromInvariantStringsOrNormal(this FontFamily family, string style, string weight, string stretch)
{
if (family == null)
{
throw new ArgumentNullException(nameof(family));
}
ArgumentNullException.ThrowIfNull(family);
var styleObj = GetFontStyleFromInvariantStringOrNormal(style);
var weightObj = GetFontWeightFromInvariantStringOrNormal(weight);

View File

@@ -188,10 +188,7 @@ namespace PowerLauncher.Plugin
public static List<Result> QueryForPlugin(PluginPair pair, Query query, bool delayedExecution = false)
{
if (pair == null)
{
throw new ArgumentNullException(nameof(pair));
}
ArgumentNullException.ThrowIfNull(pair);
if (!pair.IsPluginInitialized)
{
@@ -272,15 +269,9 @@ namespace PowerLauncher.Plugin
public static void UpdatePluginMetadata(List<Result> results, PluginMetadata metadata, Query query)
{
if (results == null)
{
throw new ArgumentNullException(nameof(results));
}
ArgumentNullException.ThrowIfNull(results);
if (metadata == null)
{
throw new ArgumentNullException(nameof(metadata));
}
ArgumentNullException.ThrowIfNull(metadata);
foreach (var r in results)
{

View File

@@ -12,10 +12,7 @@ namespace PowerLauncher.Plugin
{
public static Dictionary<PluginPair, Query> Build(string text)
{
if (text == null)
{
throw new ArgumentNullException(nameof(text));
}
ArgumentNullException.ThrowIfNull(text);
text = text.Trim();
int longestActionKeywordLength = 0;

View File

@@ -3,7 +3,7 @@
<PropertyGroup>
<AssemblyTitle>PowerToys.Run</AssemblyTitle>
<OutputType>WinExe</OutputType>
<TargetFramework>net7.0-windows10.0.20348.0</TargetFramework>
<TargetFramework>net8.0-windows10.0.20348.0</TargetFramework>
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
<UseWPF>true</UseWPF>
@@ -26,10 +26,10 @@
<!-- SelfContained=true requires RuntimeIdentifier to be set -->
<PropertyGroup Condition="'$(Platform)'=='x64'">
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>
<PropertyGroup Condition="'$(Platform)'=='ARM64'">
<RuntimeIdentifier>win10-arm64</RuntimeIdentifier>
<RuntimeIdentifier>win-arm64</RuntimeIdentifier>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'">

View File

@@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishProtocol>FileSystem</PublishProtocol>
<TargetFramework>net7.0-windows10.0.20348.0</TargetFramework>
<TargetFramework>net8.0-windows10.0.20348.0</TargetFramework>
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
<PublishDir>$(PowerToysRoot)\$(Platform)\$(Configuration)</PublishDir>

View File

@@ -262,15 +262,15 @@ namespace PowerLauncher
var defaultPlugins = GetDefaultPluginsSettings().ToDictionary(x => x.Id);
foreach (PowerLauncherPluginSettings plugin in settings.Plugins)
{
if (defaultPlugins.ContainsKey(plugin.Id))
if (defaultPlugins.TryGetValue(plugin.Id, out PowerLauncherPluginSettings value))
{
var additionalOptions = CombineAdditionalOptions(defaultPlugins[plugin.Id].AdditionalOptions, plugin.AdditionalOptions);
var additionalOptions = CombineAdditionalOptions(value.AdditionalOptions, plugin.AdditionalOptions);
var enabledPolicyState = GPOWrapper.GetRunPluginEnabledValue(plugin.Id);
plugin.Name = defaultPlugins[plugin.Id].Name;
plugin.Description = defaultPlugins[plugin.Id].Description;
plugin.Author = defaultPlugins[plugin.Id].Author;
plugin.IconPathDark = defaultPlugins[plugin.Id].IconPathDark;
plugin.IconPathLight = defaultPlugins[plugin.Id].IconPathLight;
plugin.Name = value.Name;
plugin.Description = value.Description;
plugin.Author = value.Author;
plugin.IconPathDark = value.IconPathDark;
plugin.IconPathLight = value.IconPathLight;
plugin.EnabledPolicyUiState = (int)enabledPolicyState;
defaultPlugins[plugin.Id] = plugin;
defaultPlugins[plugin.Id].AdditionalOptions = additionalOptions;

View File

@@ -1013,15 +1013,9 @@ namespace PowerLauncher.ViewModel
/// </summary>
public void UpdateResultView(List<Result> list, string originQuery, CancellationToken ct)
{
if (list == null)
{
throw new ArgumentNullException(nameof(list));
}
ArgumentNullException.ThrowIfNull(list);
if (originQuery == null)
{
throw new ArgumentNullException(nameof(originQuery));
}
ArgumentNullException.ThrowIfNull(originQuery);
foreach (var result in list)
{
@@ -1062,7 +1056,7 @@ namespace PowerLauncher.ViewModel
else
{
// Using Ordinal this is internal
return string.IsNullOrEmpty(queryText) || autoCompleteText.IndexOf(queryText, StringComparison.Ordinal) != 0;
return string.IsNullOrEmpty(queryText) || !autoCompleteText.StartsWith(queryText, StringComparison.Ordinal);
}
}
@@ -1073,7 +1067,7 @@ namespace PowerLauncher.ViewModel
if (index == 0)
{
// Using OrdinalIgnoreCase because we want the characters to be exact in autocomplete text and the query
if (input.IndexOf(query, StringComparison.OrdinalIgnoreCase) == 0)
if (input.StartsWith(query, StringComparison.OrdinalIgnoreCase))
{
// Use the same case as the input query for the matched portion of the string
return string.Concat(query, input.AsSpan(query.Length));
@@ -1091,7 +1085,7 @@ namespace PowerLauncher.ViewModel
if (index == 0 && !string.IsNullOrEmpty(query))
{
// Using OrdinalIgnoreCase since this is internal
if (input.IndexOf(query, StringComparison.OrdinalIgnoreCase) == 0)
if (input.StartsWith(query, StringComparison.OrdinalIgnoreCase))
{
return string.Concat(query, input.AsSpan(query.Length));
}

View File

@@ -263,10 +263,7 @@ namespace PowerLauncher.ViewModel
/// </summary>
public void AddResults(List<Result> newRawResults, CancellationToken ct)
{
if (newRawResults == null)
{
throw new ArgumentNullException(nameof(newRawResults));
}
ArgumentNullException.ThrowIfNull(newRawResults);
List<ResultViewModel> newResults = new List<ResultViewModel>(newRawResults.Count);
foreach (Result r in newRawResults)