From d458feca1ea0cd86768fa782e0d17d881851f345 Mon Sep 17 00:00:00 2001
From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com>
Date: Fri, 25 Oct 2024 23:28:52 +0200
Subject: [PATCH 01/34] Add DesktopMagicPluginAPI.xml to .gitignore
---
.gitignore | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.gitignore b/.gitignore
index a6d3a11..2c7bae1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,9 @@
bin/
obj/
+# Project-specific files
+/src/DesktopMagicPluginAPI/DesktopMagicPluginAPI.xml
+
# User-specific files
*.rsuser
*.suo
From e545f27461fd1f215e3b154a280d22d4655eccc7 Mon Sep 17 00:00:00 2001
From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com>
Date: Sat, 26 Oct 2024 00:25:53 +0200
Subject: [PATCH 02/34] Replace Xceed.Wpf.Toolkit.IntegerUpDown with
MaterialDesignThemes.Wpf.NumericUpDown
---
src/DesktopMagic/DesktopMagic.csproj | 9 ++++-----
.../Helpers/SettingElementGenerator.cs | 17 ++++++++++-------
2 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/src/DesktopMagic/DesktopMagic.csproj b/src/DesktopMagic/DesktopMagic.csproj
index ed6c720..b11a26f 100644
--- a/src/DesktopMagic/DesktopMagic.csproj
+++ b/src/DesktopMagic/DesktopMagic.csproj
@@ -7,11 +7,11 @@
icon.ico
OnBuildSuccess
Stone_Red
- 1.0.1.240501
+ 1.0.2.0
https://github.com/Stone-Red-Code/DesktopMagic
https://github.com/Stone-Red-Code/DesktopMagic
- 1.0.1.0501
- 1.0.1.0501
+ 1.0.2.0
+ 1.0.2.0
net8.0-windows7.0
enable
false
@@ -38,8 +38,7 @@
-
-
+
diff --git a/src/DesktopMagic/Helpers/SettingElementGenerator.cs b/src/DesktopMagic/Helpers/SettingElementGenerator.cs
index 4c6e3ef..c4c7810 100644
--- a/src/DesktopMagic/Helpers/SettingElementGenerator.cs
+++ b/src/DesktopMagic/Helpers/SettingElementGenerator.cs
@@ -127,19 +127,22 @@ internal class SettingElementGenerator(ComboBox optionsComboBox)
}
else if (settingElement.Input is DesktopMagic.Api.Settings.IntegerUpDown eIntegerUpDown)
{
- Xceed.Wpf.Toolkit.IntegerUpDown integerUpDown = new()
+ MaterialDesignThemes.Wpf.NumericUpDown numericUpDown = new()
{
Value = eIntegerUpDown.Value,
Minimum = eIntegerUpDown.Minimum,
Maximum = eIntegerUpDown.Maximum,
+ IncreaseContent = new Label() { Content = "+" },
+ DecreaseContent = new Label() { Content = "–" },
VerticalAlignment = VerticalAlignment.Center,
- HorizontalAlignment = HorizontalAlignment.Stretch
+ HorizontalAlignment = HorizontalAlignment.Stretch,
+ AllowChangeOnScroll = true
};
- integerUpDown.ValueChanged += (_s, _e) =>
+ numericUpDown.ValueChanged += (_s, _e) =>
{
try
{
- eIntegerUpDown.Value = integerUpDown.Value.GetValueOrDefault();
+ eIntegerUpDown.Value = numericUpDown.Value;
}
catch (Exception ex)
{
@@ -148,12 +151,12 @@ internal class SettingElementGenerator(ComboBox optionsComboBox)
};
eIntegerUpDown.OnValueChanged += () =>
{
- integerUpDown.Dispatcher.Invoke(() =>
+ numericUpDown.Dispatcher.Invoke(() =>
{
- integerUpDown.Value = eIntegerUpDown.Value;
+ numericUpDown.Value = eIntegerUpDown.Value;
});
};
- _ = dockPanel.Children.Add(integerUpDown);
+ _ = dockPanel.Children.Add(numericUpDown);
}
else if (settingElement.Input is DesktopMagic.Api.Settings.Slider eSlider)
{
From 7e1736696d394b3a1f255ffaf5b6f67e0554d04e Mon Sep 17 00:00:00 2001
From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com>
Date: Sat, 26 Oct 2024 14:43:14 +0200
Subject: [PATCH 03/34] Rename BuiltInWindowElements to BuiltInPlugins
---
.../CpuMonitorPlugin.cs | 2 +-
.../DatePlugin.cs | 12 ++++++------
.../MusicVisualizerPlugin.cs | 2 +-
.../TimePlugin.cs | 2 +-
src/DesktopMagic/MainWindow.xaml.cs | 2 +-
5 files changed, 10 insertions(+), 10 deletions(-)
rename src/DesktopMagic/{BuiltInWindowElements => BuiltInPlugins}/CpuMonitorPlugin.cs (98%)
rename src/DesktopMagic/{BuiltInWindowElements => BuiltInPlugins}/DatePlugin.cs (80%)
rename src/DesktopMagic/{BuiltInWindowElements => BuiltInPlugins}/MusicVisualizerPlugin.cs (99%)
rename src/DesktopMagic/{BuiltInWindowElements => BuiltInPlugins}/TimePlugin.cs (96%)
diff --git a/src/DesktopMagic/BuiltInWindowElements/CpuMonitorPlugin.cs b/src/DesktopMagic/BuiltInPlugins/CpuMonitorPlugin.cs
similarity index 98%
rename from src/DesktopMagic/BuiltInWindowElements/CpuMonitorPlugin.cs
rename to src/DesktopMagic/BuiltInPlugins/CpuMonitorPlugin.cs
index 7c8cca5..da4d02f 100644
--- a/src/DesktopMagic/BuiltInWindowElements/CpuMonitorPlugin.cs
+++ b/src/DesktopMagic/BuiltInPlugins/CpuMonitorPlugin.cs
@@ -7,7 +7,7 @@ using System.Drawing.Text;
using SettingAttribute = DesktopMagic.Api.Settings.SettingAttribute;
-namespace DesktopMagic.BuiltInWindowElements;
+namespace DesktopMagic.BuiltInPlugins;
internal class CpuMonitorPlugin : Plugin
{
diff --git a/src/DesktopMagic/BuiltInWindowElements/DatePlugin.cs b/src/DesktopMagic/BuiltInPlugins/DatePlugin.cs
similarity index 80%
rename from src/DesktopMagic/BuiltInWindowElements/DatePlugin.cs
rename to src/DesktopMagic/BuiltInPlugins/DatePlugin.cs
index 00190d0..9a6ad36 100644
--- a/src/DesktopMagic/BuiltInWindowElements/DatePlugin.cs
+++ b/src/DesktopMagic/BuiltInPlugins/DatePlugin.cs
@@ -5,22 +5,22 @@ using System;
using System.Drawing;
using System.Drawing.Text;
-namespace DesktopMagic.BuiltInWindowElements;
+namespace DesktopMagic.BuiltInPlugins;
internal class DatePlugin : Plugin
{
[Setting("short-date", "Short date")]
- private readonly CheckBox shortDatecheckBox = new CheckBox(true);
+ private readonly CheckBox shortDateCheckBox = new CheckBox(true);
private DateTime oldDateTime = DateTime.MinValue;
private Color oldColor = Color.White;
private string oldFont = string.Empty;
- private bool oldShortDatecheckBoxValue;
+ private bool oldShortDateCheckBoxValue;
public override int UpdateInterval => 1000;
public override Bitmap? Main()
{
- if (oldDateTime.Date == DateTime.Now.Date && oldColor == Application.Theme.PrimaryColor && oldFont == Application.Theme.Font && oldShortDatecheckBoxValue == shortDatecheckBox.Value)
+ if (oldDateTime.Date == DateTime.Now.Date && oldColor == Application.Theme.PrimaryColor && oldFont == Application.Theme.Font && oldShortDateCheckBoxValue == shortDateCheckBox.Value)
{
return null;
}
@@ -28,9 +28,9 @@ internal class DatePlugin : Plugin
oldDateTime = DateTime.Now;
oldColor = Application.Theme.PrimaryColor;
oldFont = Application.Theme.Font;
- oldShortDatecheckBoxValue = shortDatecheckBox.Value;
+ oldShortDateCheckBoxValue = shortDateCheckBox.Value;
- string date = shortDatecheckBox.Value ? DateTime.Now.ToShortDateString() : DateTime.Now.ToLongDateString();
+ string date = shortDateCheckBox.Value ? DateTime.Now.ToShortDateString() : DateTime.Now.ToLongDateString();
Font font = new Font(Application.Theme.Font, 200);
diff --git a/src/DesktopMagic/BuiltInWindowElements/MusicVisualizerPlugin.cs b/src/DesktopMagic/BuiltInPlugins/MusicVisualizerPlugin.cs
similarity index 99%
rename from src/DesktopMagic/BuiltInWindowElements/MusicVisualizerPlugin.cs
rename to src/DesktopMagic/BuiltInPlugins/MusicVisualizerPlugin.cs
index 50eb70a..cbea875 100644
--- a/src/DesktopMagic/BuiltInWindowElements/MusicVisualizerPlugin.cs
+++ b/src/DesktopMagic/BuiltInPlugins/MusicVisualizerPlugin.cs
@@ -9,7 +9,7 @@ using System.Collections.Generic;
using System.Drawing;
using System.Linq;
-namespace DesktopMagic.BuiltInWindowElements;
+namespace DesktopMagic.BuiltInPlugins;
internal class MusicVisualizerPlugin : Plugin
{
diff --git a/src/DesktopMagic/BuiltInWindowElements/TimePlugin.cs b/src/DesktopMagic/BuiltInPlugins/TimePlugin.cs
similarity index 96%
rename from src/DesktopMagic/BuiltInWindowElements/TimePlugin.cs
rename to src/DesktopMagic/BuiltInPlugins/TimePlugin.cs
index b25d73c..9365dcd 100644
--- a/src/DesktopMagic/BuiltInWindowElements/TimePlugin.cs
+++ b/src/DesktopMagic/BuiltInPlugins/TimePlugin.cs
@@ -5,7 +5,7 @@ using System;
using System.Drawing;
using System.Drawing.Text;
-namespace DesktopMagic.BuiltInWindowElements;
+namespace DesktopMagic.BuiltInPlugins;
internal class TimePlugin : Plugin
{
diff --git a/src/DesktopMagic/MainWindow.xaml.cs b/src/DesktopMagic/MainWindow.xaml.cs
index 85df4d1..227ccb9 100644
--- a/src/DesktopMagic/MainWindow.xaml.cs
+++ b/src/DesktopMagic/MainWindow.xaml.cs
@@ -1,4 +1,4 @@
-using DesktopMagic.BuiltInWindowElements;
+using DesktopMagic.BuiltInPlugins;
using DesktopMagic.DataContexts;
using DesktopMagic.Dialogs;
using DesktopMagic.Helpers;
From 3993e6d612b614384efce816c5cce4f16bc0adea Mon Sep 17 00:00:00 2001
From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com>
Date: Fri, 15 Nov 2024 19:41:16 +0100
Subject: [PATCH 04/34] Fix multiple warnings
---
src/DesktopMagic/App.xaml.cs | 14 +++---
src/DesktopMagic/Dialogs/ColorDialog.xaml.cs | 2 +-
src/DesktopMagic/GlobalSuppressions.cs | 2 +
src/DesktopMagic/Helpers/SampleAggregator.cs | 2 +-
src/DesktopMagic/MainWindow.xaml.cs | 46 +++++++++----------
.../Drawing/FontComparer.cs | 7 ++-
src/DesktopMagicPluginAPI/Settings/Slider.cs | 2 +
7 files changed, 41 insertions(+), 34 deletions(-)
diff --git a/src/DesktopMagic/App.xaml.cs b/src/DesktopMagic/App.xaml.cs
index a4949bf..e4beedc 100644
--- a/src/DesktopMagic/App.xaml.cs
+++ b/src/DesktopMagic/App.xaml.cs
@@ -102,7 +102,13 @@ public partial class App : Application
eventThread?.Interrupt();
}
- private void Setup(bool clearLogFile)
+ private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
+ {
+ Exception exception = (Exception)e.ExceptionObject;
+ Logger.LogFatal(exception + (e.IsTerminating ? "\t Process terminating!" : ""), source: exception.Source ?? "Unknown");
+ }
+
+ private static void Setup(bool clearLogFile)
{
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
@@ -127,10 +133,4 @@ public partial class App : Application
Logger.LogInfo("Setup complete", source: "Setup");
}
-
- private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
- {
- Exception exception = (Exception)e.ExceptionObject;
- Logger.LogFatal(exception + (e.IsTerminating ? "\t Process terminating!" : ""), source: exception.Source ?? "Unknown");
- }
}
\ No newline at end of file
diff --git a/src/DesktopMagic/Dialogs/ColorDialog.xaml.cs b/src/DesktopMagic/Dialogs/ColorDialog.xaml.cs
index 1f07499..0d92c20 100644
--- a/src/DesktopMagic/Dialogs/ColorDialog.xaml.cs
+++ b/src/DesktopMagic/Dialogs/ColorDialog.xaml.cs
@@ -97,7 +97,7 @@ public partial class ColorDialog : Window
private void SetColorText()
{
- if (alphaSlider.Value == 255)
+ if ((int)alphaSlider.Value == 255)
{
colorHexTextBox.Text = "#";
}
diff --git a/src/DesktopMagic/GlobalSuppressions.cs b/src/DesktopMagic/GlobalSuppressions.cs
index 8b907aa..18fd782 100644
--- a/src/DesktopMagic/GlobalSuppressions.cs
+++ b/src/DesktopMagic/GlobalSuppressions.cs
@@ -10,3 +10,5 @@ using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("Minor Code Smell", "S1075:URIs should not be hardcoded", Justification = "")]
[assembly: SuppressMessage("Critical Code Smell", "S2696:Instance members should not write to \"static\" fields", Justification = "", Scope = "member", Target = "~P:DesktopMagic.DataContexts.MainWindowDataContext.Settings")]
[assembly: SuppressMessage("Major Code Smell", "S3885:\"Assembly.Load\" should be used", Justification = "Assembly.Load does not load dependencies", Scope = "member", Target = "~M:DesktopMagic.PluginWindow.ExecuteSource")]
+[assembly: SuppressMessage("Minor Code Smell", "S2325:Methods and properties that don't access instance data should be static", Justification = "", Scope = "member", Target = "~M:DesktopMagic.MainWindow.OpenPluginsFolderButton_Click(System.Object,System.Windows.RoutedEventArgs)")]
+[assembly: SuppressMessage("Minor Code Smell", "S2325:Methods and properties that don't access instance data should be static", Justification = "", Scope = "member", Target = "~M:DesktopMagic.MainWindow.ScrollViewer_PreviewMouseWheel(System.Object,System.Windows.Input.MouseWheelEventArgs)")]
diff --git a/src/DesktopMagic/Helpers/SampleAggregator.cs b/src/DesktopMagic/Helpers/SampleAggregator.cs
index 38d68e9..62dee9c 100644
--- a/src/DesktopMagic/Helpers/SampleAggregator.cs
+++ b/src/DesktopMagic/Helpers/SampleAggregator.cs
@@ -47,7 +47,7 @@ internal class SampleAggregator
}
}
- private bool IsPowerOfTwo(int x)
+ private static bool IsPowerOfTwo(int x)
{
return (x & (x - 1)) == 0;
}
diff --git a/src/DesktopMagic/MainWindow.xaml.cs b/src/DesktopMagic/MainWindow.xaml.cs
index 227ccb9..cac7a68 100644
--- a/src/DesktopMagic/MainWindow.xaml.cs
+++ b/src/DesktopMagic/MainWindow.xaml.cs
@@ -160,6 +160,17 @@ namespace DesktopMagic
#region Windows
+ private static void DisplayWindow_ContentRendered(object? sender, EventArgs e)
+ {
+ if (sender is not Window window)
+ {
+ return;
+ }
+
+ WindowPos.SendWpfWindowBack(window);
+ WindowPos.SendWpfWindowBack(window);
+ }
+
private void EditCheckBox_Click(object? sender, RoutedEventArgs? e)
{
EditMode = EditCheckBox.IsChecked == true;
@@ -256,17 +267,6 @@ namespace DesktopMagic
WindowNames.Add(window.Title);
}
- private void DisplayWindow_ContentRendered(object? sender, EventArgs e)
- {
- if (sender is not Window window)
- {
- return;
- }
-
- WindowPos.SendWpfWindowBack(window);
- WindowPos.SendWpfWindowBack(window);
- }
-
private void DisplayWindow_Closing(object? sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = blockWindowsClosing;
@@ -372,6 +372,18 @@ namespace DesktopMagic
}
}
+ private void OpenPluginsFolderButton_Click(object sender, RoutedEventArgs e)
+ {
+ _ = Process.Start("explorer.exe", App.ApplicationDataPath + "\\Plugins");
+ }
+
+ private void ScrollViewer_PreviewMouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs e)
+ {
+ ScrollViewer scv = (ScrollViewer)sender;
+ scv.ScrollToVerticalOffset(scv.VerticalOffset - e.Delta);
+ e.Handled = true;
+ }
+
private void TextBlock_Loaded(object sender, RoutedEventArgs e)
{
int index = 0;
@@ -619,18 +631,6 @@ namespace DesktopMagic
LoadLayout(false);
}
- private void OpenPluginsFolderButton_Click(object sender, RoutedEventArgs e)
- {
- _ = Process.Start("explorer.exe", App.ApplicationDataPath + "\\Plugins");
- }
-
- private void ScrollViewer_PreviewMouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs e)
- {
- ScrollViewer scv = (ScrollViewer)sender;
- scv.ScrollToVerticalOffset(scv.VerticalOffset - e.Delta);
- e.Handled = true;
- }
-
private void TaskbarIcon_TrayLeftClick(object? sender, EventArgs e)
{
RestoreWindow();
diff --git a/src/DesktopMagicPluginAPI/Drawing/FontComparer.cs b/src/DesktopMagicPluginAPI/Drawing/FontComparer.cs
index 45a5171..295b8ff 100644
--- a/src/DesktopMagicPluginAPI/Drawing/FontComparer.cs
+++ b/src/DesktopMagicPluginAPI/Drawing/FontComparer.cs
@@ -1,4 +1,5 @@
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Drawing;
@@ -6,6 +7,8 @@ namespace DesktopMagic.Api.Drawing;
internal class FontComparer : IEqualityComparer
{
+ private const float Tolerance = 0.01f;
+
public bool Equals(Font? font1, Font? font2)
{
if (font1 is null || font2 is null)
@@ -18,7 +21,7 @@ internal class FontComparer : IEqualityComparer
return false;
}
- if (font1.SizeInPoints != font2.SizeInPoints)
+ if (Math.Abs(font1.SizeInPoints - font2.SizeInPoints) > Tolerance)
{
return false;
}
diff --git a/src/DesktopMagicPluginAPI/Settings/Slider.cs b/src/DesktopMagicPluginAPI/Settings/Slider.cs
index 813bd44..003a58a 100644
--- a/src/DesktopMagicPluginAPI/Settings/Slider.cs
+++ b/src/DesktopMagicPluginAPI/Settings/Slider.cs
@@ -1,4 +1,5 @@
using System;
+using System.Diagnostics.CodeAnalysis;
namespace DesktopMagic.Api.Settings;
@@ -22,6 +23,7 @@ public sealed class Slider : Setting
///
/// Gets or sets the value assigned to the element.
///
+ [SuppressMessage("Major Bug", "S1244:Floating point numbers should not be tested for equality", Justification = "Not applicable here since we want to detect changes in the value.")]
public double Value
{
get => _value;
From f684cdb0511e2a2e2438b9ae3bb5e432336e4dde Mon Sep 17 00:00:00 2001
From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com>
Date: Fri, 15 Nov 2024 19:41:34 +0100
Subject: [PATCH 05/34] Show error when failing to delete plugin files
---
.../Plugins/PluginManager.xaml.cs | 22 +++++++++++++------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/src/DesktopMagic/Plugins/PluginManager.xaml.cs b/src/DesktopMagic/Plugins/PluginManager.xaml.cs
index 8b9bb92..7217664 100644
--- a/src/DesktopMagic/Plugins/PluginManager.xaml.cs
+++ b/src/DesktopMagic/Plugins/PluginManager.xaml.cs
@@ -58,16 +58,24 @@ public partial class PluginManager : Window
PluginEntryDataContext? pluginEntryDataContext = pluginManagerDataContext.InstalledPlugins.FirstOrDefault(p => p.Id == id);
+ if (Directory.Exists(pluginPath))
+ {
+ try
+ {
+ Directory.Delete(pluginPath, true);
+ }
+ catch (Exception ex)
+ {
+ _ = MessageBox.Show(ex.Message, "Plugin Manager", MessageBoxButton.OK, MessageBoxImage.Error);
+ App.Logger.LogError(ex.Message, source: "PluginManager");
+ }
+ }
+
if (pluginEntryDataContext is not null)
{
_ = pluginManagerDataContext.InstalledPlugins.Remove(pluginEntryDataContext);
}
- if (Directory.Exists(pluginPath))
- {
- Directory.Delete(pluginPath, true);
- }
-
pluginManagerDataContext.IsLoading = false;
}
@@ -85,7 +93,7 @@ public partial class PluginManager : Window
continue;
}
- PluginMetadata? pluginMetadata = JsonSerializer.Deserialize(File.ReadAllText(pluginMetadataPath));
+ PluginMetadata? pluginMetadata = JsonSerializer.Deserialize(await File.ReadAllTextAsync(pluginMetadataPath));
if (pluginMetadata is not null)
{
@@ -141,7 +149,7 @@ public partial class PluginManager : Window
}
string pluginMetadataPath = Path.Combine(pluginPath, "metadata.json");
- File.WriteAllText(pluginMetadataPath, JsonSerializer.Serialize(new PluginMetadata(mod)));
+ await File.WriteAllTextAsync(pluginMetadataPath, JsonSerializer.Serialize(new PluginMetadata(mod)));
File.Delete(zipFilePath);
From c6e858764f868442a9bddab0c4a4dbe541d07f95 Mon Sep 17 00:00:00 2001
From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com>
Date: Fri, 15 Nov 2024 19:53:19 +0100
Subject: [PATCH 06/34] Remove unnecessary files
---
src/DesktopMagicPluginAPI/LICENSE | 21 ---------------------
src/DesktopMagicPluginAPI/log.txt | 20 --------------------
2 files changed, 41 deletions(-)
delete mode 100644 src/DesktopMagicPluginAPI/LICENSE
delete mode 100644 src/DesktopMagicPluginAPI/log.txt
diff --git a/src/DesktopMagicPluginAPI/LICENSE b/src/DesktopMagicPluginAPI/LICENSE
deleted file mode 100644
index 96b2e79..0000000
--- a/src/DesktopMagicPluginAPI/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2021 Stone_Red
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/src/DesktopMagicPluginAPI/log.txt b/src/DesktopMagicPluginAPI/log.txt
deleted file mode 100644
index abe8dbd..0000000
--- a/src/DesktopMagicPluginAPI/log.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-{"message":"No project detected for extracting metadata.","source":"MetadataCommand.ExtractMetadata","date_time":"2022-03-23T17:27:09.2932822Z","message_severity":"warning","correlation_id":"05F9403E-48D7-4391-A021-24959EE7708C.1.1.3"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\ukjrz4sg.zci'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-23T17:27:10.803282Z","message_severity":"error","code":"FatalError","correlation_id":"05F9403E-48D7-4391-A021-24959EE7708C.3"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\dwwldwwa.bzu'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-23T17:27:10.803282Z","message_severity":"error","code":"FatalError","correlation_id":"05F9403E-48D7-4391-A021-24959EE7708C.4"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\t3fz202q.zli'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-23T17:27:10.803282Z","message_severity":"error","code":"FatalError","correlation_id":"05F9403E-48D7-4391-A021-24959EE7708C.5"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\i2420sau.kem'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-23T17:27:10.803282Z","message_severity":"error","code":"FatalError","correlation_id":"05F9403E-48D7-4391-A021-24959EE7708C.6"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\cb1eimph.z3j'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-23T17:27:10.803282Z","message_severity":"error","code":"FatalError","correlation_id":"05F9403E-48D7-4391-A021-24959EE7708C.7"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\1055nvuh.cur'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-23T17:27:10.803282Z","message_severity":"error","code":"FatalError","correlation_id":"05F9403E-48D7-4391-A021-24959EE7708C.8"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\1dkzedxu.fnm'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-23T17:27:10.803282Z","message_severity":"error","code":"FatalError","correlation_id":"05F9403E-48D7-4391-A021-24959EE7708C.9"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\nkzrssns.lck'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-23T17:27:10.8042823Z","message_severity":"error","code":"FatalError","correlation_id":"05F9403E-48D7-4391-A021-24959EE7708C.10"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\lwogcavo.5da'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-23T17:27:10.8042823Z","message_severity":"error","code":"FatalError","correlation_id":"05F9403E-48D7-4391-A021-24959EE7708C.11"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\puc5uwdx.h5d'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-23T17:27:10.8042823Z","message_severity":"error","code":"FatalError","correlation_id":"05F9403E-48D7-4391-A021-24959EE7708C.12"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\v12lrk4s.ngm'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-23T17:27:10.805282Z","message_severity":"error","code":"FatalError","correlation_id":"05F9403E-48D7-4391-A021-24959EE7708C.13"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\0hscybzu.ob2'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-23T17:27:10.805282Z","message_severity":"error","code":"FatalError","correlation_id":"05F9403E-48D7-4391-A021-24959EE7708C.14"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\rphd3j2r.zjr'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-23T17:27:10.805282Z","message_severity":"error","code":"FatalError","correlation_id":"05F9403E-48D7-4391-A021-24959EE7708C.15"}
-{"message":"No project detected for extracting metadata.","source":"MetadataCommand.ExtractMetadata","date_time":"2022-03-24T12:36:07.32842Z","message_severity":"warning","correlation_id":"831032FA-9498-4B91-8F87-6478A11BD9B2.1.1.3"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\puc5uwdx.h5d'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-24T12:36:18.2594668Z","message_severity":"error","code":"FatalError","correlation_id":"831032FA-9498-4B91-8F87-6478A11BD9B2.3"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\lwogcavo.5da'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-24T12:36:18.2604591Z","message_severity":"error","code":"FatalError","correlation_id":"831032FA-9498-4B91-8F87-6478A11BD9B2.4"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\v12lrk4s.ngm'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-24T12:36:18.2604591Z","message_severity":"error","code":"FatalError","correlation_id":"831032FA-9498-4B91-8F87-6478A11BD9B2.5"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\t3fz202q.zli'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-24T12:36:18.2604591Z","message_severity":"error","code":"FatalError","correlation_id":"831032FA-9498-4B91-8F87-6478A11BD9B2.6"}
-{"message":"System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagicPluginAPI\\obj\\.cache\\build\\dwcg0axe.jl4\\0hscybzu.ob2'.\r\n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)\r\n at Microsoft.DocAsCode.Common.RealFileWriter.Copy(PathMapping sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.FileAbstractLayer.Copy(RelativePath sourceFileName, RelativePath destFileName)\r\n at Microsoft.DocAsCode.Common.ManifestFileHelper.<>c__DisplayClass8_0.b__4(OutputFileInfo ofi)\r\n at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.b__1()\r\n at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)\r\n at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )","date_time":"2022-03-24T12:36:18.2604591Z","message_severity":"error","code":"FatalError","correlation_id":"831032FA-9498-4B91-8F87-6478A11BD9B2.7"}
From e6be5c011bcad11f7b1e98e43a757d896253ed4e Mon Sep 17 00:00:00 2001
From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com>
Date: Fri, 15 Nov 2024 19:55:12 +0100
Subject: [PATCH 07/34] Replace deprecated Modio library with alternative
library
---
src/DesktopMagic/DesktopMagic.csproj | 2 +-
src/DesktopMagic/Plugins/PluginManager.xaml.cs | 10 +++++-----
src/DesktopMagic/Plugins/PluginMetadata.cs | 2 +-
src/DesktopMagicPluginAPI/DesktopMagic.Api.csproj | 10 +++++-----
4 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/DesktopMagic/DesktopMagic.csproj b/src/DesktopMagic/DesktopMagic.csproj
index b11a26f..682b30b 100644
--- a/src/DesktopMagic/DesktopMagic.csproj
+++ b/src/DesktopMagic/DesktopMagic.csproj
@@ -39,7 +39,7 @@
-
+
diff --git a/src/DesktopMagic/Plugins/PluginManager.xaml.cs b/src/DesktopMagic/Plugins/PluginManager.xaml.cs
index 7217664..e13ee50 100644
--- a/src/DesktopMagic/Plugins/PluginManager.xaml.cs
+++ b/src/DesktopMagic/Plugins/PluginManager.xaml.cs
@@ -1,9 +1,9 @@
using DesktopMagic.DataContexts;
using DesktopMagic.Helpers;
-using Modio.NET;
-using Modio.NET.Filters;
-using Modio.NET.Models;
+using Modio;
+using Modio.Filters;
+using Modio.Models;
using System;
using System.Collections.Generic;
@@ -104,7 +104,7 @@ public partial class PluginManager : Window
Filter filter = ModFilter.Popular.Desc().Limit(100);
- IAsyncEnumerable mods = client.Games[modIoGameId].Mods.Search(filter).ToEnumerableAsync();
+ IAsyncEnumerable mods = client.Games[modIoGameId].Mods.Search(filter).ToEnumerable();
await foreach (Mod mod in mods)
{
if (pluginIds.Contains(mod.Id))
@@ -220,7 +220,7 @@ public partial class PluginManager : Window
Filter filter = ModFilter.Name.Like($"{searchString}").And(ModFilter.Popular.Desc()).Limit(100);
- IAsyncEnumerable mods = client.Games[modIoGameId].Mods.Search(filter).ToEnumerableAsync();
+ IAsyncEnumerable mods = client.Games[modIoGameId].Mods.Search(filter).ToEnumerable();
await foreach (Mod mod in mods)
{
if (pluginManagerDataContext.InstalledPlugins.Any(p => p.Id == mod.Id))
diff --git a/src/DesktopMagic/Plugins/PluginMetadata.cs b/src/DesktopMagic/Plugins/PluginMetadata.cs
index ba33e5b..b4c9b3e 100644
--- a/src/DesktopMagic/Plugins/PluginMetadata.cs
+++ b/src/DesktopMagic/Plugins/PluginMetadata.cs
@@ -1,4 +1,4 @@
-using Modio.NET.Models;
+using Modio.Models;
using System;
using System.Text.Json.Serialization;
diff --git a/src/DesktopMagicPluginAPI/DesktopMagic.Api.csproj b/src/DesktopMagicPluginAPI/DesktopMagic.Api.csproj
index 50926c4..d49a526 100644
--- a/src/DesktopMagicPluginAPI/DesktopMagic.Api.csproj
+++ b/src/DesktopMagicPluginAPI/DesktopMagic.Api.csproj
@@ -22,15 +22,15 @@
$([System.IO.Path]::Combine($(MSBuildProjectDirectory), "DesktopMagicPluginAPI.xml"))
-
-
-
-
True
-
+ \
+
+
+
+
From ce1c181b143de08c5cfba96a8cfaa1cf93722822 Mon Sep 17 00:00:00 2001
From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com>
Date: Sat, 16 Nov 2024 14:36:04 +0100
Subject: [PATCH 08/34] Add MsixPackaging project
---
src/DesktopMagic.sln | 92 +++++++++-
src/DesktopMagic/DesktopMagic.csproj | 5 +
.../Images/LargeTile.scale-100.png | Bin 0 -> 11347 bytes
.../Images/LargeTile.scale-125.png | Bin 0 -> 14791 bytes
.../Images/LargeTile.scale-150.png | Bin 0 -> 19013 bytes
.../Images/LargeTile.scale-200.png | Bin 0 -> 25916 bytes
.../Images/LargeTile.scale-400.png | Bin 0 -> 63160 bytes
.../Images/LockScreenLogo.scale-200.png | Bin 0 -> 2751 bytes
.../Images/SmallTile.scale-100.png | Bin 0 -> 2987 bytes
.../Images/SmallTile.scale-125.png | Bin 0 -> 3883 bytes
.../Images/SmallTile.scale-150.png | Bin 0 -> 4884 bytes
.../Images/SmallTile.scale-200.png | Bin 0 -> 6979 bytes
.../Images/SmallTile.scale-400.png | Bin 0 -> 15867 bytes
.../Images/SplashScreen.scale-100.png | Bin 0 -> 11952 bytes
.../Images/SplashScreen.scale-125.png | Bin 0 -> 15252 bytes
.../Images/SplashScreen.scale-150.png | Bin 0 -> 19727 bytes
.../Images/SplashScreen.scale-200.png | Bin 0 -> 27421 bytes
.../Images/SplashScreen.scale-400.png | Bin 0 -> 66094 bytes
.../Images/Square150x150Logo.scale-100.png | Bin 0 -> 4833 bytes
.../Images/Square150x150Logo.scale-125.png | Bin 0 -> 6342 bytes
.../Images/Square150x150Logo.scale-150.png | Bin 0 -> 7953 bytes
.../Images/Square150x150Logo.scale-200.png | Bin 0 -> 11121 bytes
.../Images/Square150x150Logo.scale-400.png | Bin 0 -> 24759 bytes
...go.altform-lightunplated_targetsize-16.png | Bin 0 -> 864 bytes
...go.altform-lightunplated_targetsize-24.png | Bin 0 -> 1574 bytes
...o.altform-lightunplated_targetsize-256.png | Bin 0 -> 27057 bytes
...go.altform-lightunplated_targetsize-32.png | Bin 0 -> 2342 bytes
...go.altform-lightunplated_targetsize-48.png | Bin 0 -> 3754 bytes
...x44Logo.altform-unplated_targetsize-16.png | Bin 0 -> 864 bytes
...44Logo.altform-unplated_targetsize-256.png | Bin 0 -> 27057 bytes
...x44Logo.altform-unplated_targetsize-32.png | Bin 0 -> 2342 bytes
...x44Logo.altform-unplated_targetsize-48.png | Bin 0 -> 3754 bytes
.../Images/Square44x44Logo.scale-100.png | Bin 0 -> 2493 bytes
.../Images/Square44x44Logo.scale-125.png | Bin 0 -> 3346 bytes
.../Images/Square44x44Logo.scale-150.png | Bin 0 -> 4212 bytes
.../Images/Square44x44Logo.scale-200.png | Bin 0 -> 5981 bytes
.../Images/Square44x44Logo.scale-400.png | Bin 0 -> 13274 bytes
.../Images/Square44x44Logo.targetsize-16.png | Bin 0 -> 606 bytes
.../Images/Square44x44Logo.targetsize-24.png | Bin 0 -> 1115 bytes
...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1574 bytes
.../Images/Square44x44Logo.targetsize-256.png | Bin 0 -> 20718 bytes
.../Images/Square44x44Logo.targetsize-32.png | Bin 0 -> 1669 bytes
.../Images/Square44x44Logo.targetsize-48.png | Bin 0 -> 2863 bytes
src/MsixPackaging/Images/StoreLogo.backup.png | Bin 0 -> 2860 bytes
.../Images/StoreLogo.scale-100.png | Bin 0 -> 3964 bytes
.../Images/StoreLogo.scale-125.png | Bin 0 -> 5235 bytes
.../Images/StoreLogo.scale-150.png | Bin 0 -> 6492 bytes
.../Images/StoreLogo.scale-200.png | Bin 0 -> 8953 bytes
.../Images/StoreLogo.scale-400.png | Bin 0 -> 20432 bytes
.../Images/Wide310x150Logo.scale-100.png | Bin 0 -> 5131 bytes
.../Images/Wide310x150Logo.scale-125.png | Bin 0 -> 6856 bytes
.../Images/Wide310x150Logo.scale-150.png | Bin 0 -> 8470 bytes
.../Images/Wide310x150Logo.scale-200.png | Bin 0 -> 11952 bytes
.../Images/Wide310x150Logo.scale-400.png | Bin 0 -> 27421 bytes
src/MsixPackaging/Logo.png | Bin 0 -> 364323 bytes
src/MsixPackaging/MsixPackaging.wapproj | 164 ++++++++++++++++++
src/MsixPackaging/Package.appxmanifest | 49 ++++++
57 files changed, 308 insertions(+), 2 deletions(-)
create mode 100644 src/MsixPackaging/Images/LargeTile.scale-100.png
create mode 100644 src/MsixPackaging/Images/LargeTile.scale-125.png
create mode 100644 src/MsixPackaging/Images/LargeTile.scale-150.png
create mode 100644 src/MsixPackaging/Images/LargeTile.scale-200.png
create mode 100644 src/MsixPackaging/Images/LargeTile.scale-400.png
create mode 100644 src/MsixPackaging/Images/LockScreenLogo.scale-200.png
create mode 100644 src/MsixPackaging/Images/SmallTile.scale-100.png
create mode 100644 src/MsixPackaging/Images/SmallTile.scale-125.png
create mode 100644 src/MsixPackaging/Images/SmallTile.scale-150.png
create mode 100644 src/MsixPackaging/Images/SmallTile.scale-200.png
create mode 100644 src/MsixPackaging/Images/SmallTile.scale-400.png
create mode 100644 src/MsixPackaging/Images/SplashScreen.scale-100.png
create mode 100644 src/MsixPackaging/Images/SplashScreen.scale-125.png
create mode 100644 src/MsixPackaging/Images/SplashScreen.scale-150.png
create mode 100644 src/MsixPackaging/Images/SplashScreen.scale-200.png
create mode 100644 src/MsixPackaging/Images/SplashScreen.scale-400.png
create mode 100644 src/MsixPackaging/Images/Square150x150Logo.scale-100.png
create mode 100644 src/MsixPackaging/Images/Square150x150Logo.scale-125.png
create mode 100644 src/MsixPackaging/Images/Square150x150Logo.scale-150.png
create mode 100644 src/MsixPackaging/Images/Square150x150Logo.scale-200.png
create mode 100644 src/MsixPackaging/Images/Square150x150Logo.scale-400.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-24.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-32.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-16.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-256.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-32.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.altform-unplated_targetsize-48.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.scale-100.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.scale-125.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.scale-150.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.scale-200.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.scale-400.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.targetsize-16.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.targetsize-24.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.targetsize-24_altform-unplated.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.targetsize-256.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.targetsize-32.png
create mode 100644 src/MsixPackaging/Images/Square44x44Logo.targetsize-48.png
create mode 100644 src/MsixPackaging/Images/StoreLogo.backup.png
create mode 100644 src/MsixPackaging/Images/StoreLogo.scale-100.png
create mode 100644 src/MsixPackaging/Images/StoreLogo.scale-125.png
create mode 100644 src/MsixPackaging/Images/StoreLogo.scale-150.png
create mode 100644 src/MsixPackaging/Images/StoreLogo.scale-200.png
create mode 100644 src/MsixPackaging/Images/StoreLogo.scale-400.png
create mode 100644 src/MsixPackaging/Images/Wide310x150Logo.scale-100.png
create mode 100644 src/MsixPackaging/Images/Wide310x150Logo.scale-125.png
create mode 100644 src/MsixPackaging/Images/Wide310x150Logo.scale-150.png
create mode 100644 src/MsixPackaging/Images/Wide310x150Logo.scale-200.png
create mode 100644 src/MsixPackaging/Images/Wide310x150Logo.scale-400.png
create mode 100644 src/MsixPackaging/Logo.png
create mode 100644 src/MsixPackaging/MsixPackaging.wapproj
create mode 100644 src/MsixPackaging/Package.appxmanifest
diff --git a/src/DesktopMagic.sln b/src/DesktopMagic.sln
index 3832c2c..7ad31e2 100644
--- a/src/DesktopMagic.sln
+++ b/src/DesktopMagic.sln
@@ -9,24 +9,112 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopMagic.Api", "Desktop
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopMagic.PluginTest", "DesktopMagicPlugin.Test\DesktopMagic.PluginTest.csproj", "{EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}"
EndProject
+Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "MsixPackaging", "MsixPackaging\MsixPackaging.wapproj", "{CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|ARM = Debug|ARM
+ Debug|ARM64 = Debug|ARM64
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
+ Release|ARM = Release|ARM
+ Release|ARM64 = Release|ARM64
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Debug|ARM.Build.0 = Debug|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Debug|x64.Build.0 = Debug|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Debug|x86.Build.0 = Debug|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Release|Any CPU.ActiveCfg = Release|x64
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Release|Any CPU.Build.0 = Release|x64
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Release|ARM.ActiveCfg = Release|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Release|ARM.Build.0 = Release|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Release|ARM64.Build.0 = Release|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Release|x64.ActiveCfg = Release|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Release|x64.Build.0 = Release|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Release|x86.ActiveCfg = Release|Any CPU
+ {B56B4CCC-CF92-4C05-9DEA-57666D81889A}.Release|x86.Build.0 = Release|Any CPU
{9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Debug|ARM.Build.0 = Debug|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Debug|x64.Build.0 = Debug|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Debug|x86.Build.0 = Debug|Any CPU
{9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Release|ARM.ActiveCfg = Release|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Release|ARM.Build.0 = Release|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Release|ARM64.Build.0 = Release|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Release|x64.ActiveCfg = Release|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Release|x64.Build.0 = Release|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Release|x86.ActiveCfg = Release|Any CPU
+ {9D193A10-3E8E-447F-89F1-4B316C2EE37D}.Release|x86.Build.0 = Release|Any CPU
{EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Debug|ARM.Build.0 = Debug|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Debug|x64.Build.0 = Debug|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Debug|x86.Build.0 = Debug|Any CPU
{EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Release|ARM.ActiveCfg = Release|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Release|ARM.Build.0 = Release|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Release|ARM64.Build.0 = Release|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Release|x64.ActiveCfg = Release|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Release|x64.Build.0 = Release|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Release|x86.ActiveCfg = Release|Any CPU
+ {EF8407AB-28AE-4B5E-AC2E-D4C4A575FBC7}.Release|x86.Build.0 = Release|Any CPU
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Debug|ARM.ActiveCfg = Debug|ARM
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Debug|ARM.Build.0 = Debug|ARM
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Debug|ARM.Deploy.0 = Debug|ARM
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Debug|ARM64.Build.0 = Debug|ARM64
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Debug|ARM64.Deploy.0 = Debug|ARM64
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Debug|x64.ActiveCfg = Debug|x64
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Debug|x64.Build.0 = Debug|x64
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Debug|x64.Deploy.0 = Debug|x64
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Debug|x86.ActiveCfg = Debug|x86
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Debug|x86.Build.0 = Debug|x86
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Debug|x86.Deploy.0 = Debug|x86
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Release|Any CPU.ActiveCfg = Release|x64
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Release|Any CPU.Build.0 = Release|x64
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Release|Any CPU.Deploy.0 = Release|x64
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Release|ARM.ActiveCfg = Release|ARM
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Release|ARM.Build.0 = Release|ARM
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Release|ARM.Deploy.0 = Release|ARM
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Release|ARM64.ActiveCfg = Release|ARM64
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Release|ARM64.Build.0 = Release|ARM64
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Release|ARM64.Deploy.0 = Release|ARM64
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Release|x64.ActiveCfg = Release|x64
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Release|x64.Build.0 = Release|x64
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Release|x64.Deploy.0 = Release|x64
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Release|x86.ActiveCfg = Release|x86
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Release|x86.Build.0 = Release|x86
+ {CC2850EF-1451-4D0C-9474-4CBEBB28A2C8}.Release|x86.Deploy.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/DesktopMagic/DesktopMagic.csproj b/src/DesktopMagic/DesktopMagic.csproj
index 682b30b..51b9acd 100644
--- a/src/DesktopMagic/DesktopMagic.csproj
+++ b/src/DesktopMagic/DesktopMagic.csproj
@@ -15,12 +15,17 @@
net8.0-windows7.0
enable
false
+ AnyCPU;x64
DEBUG;TRACE
+
+ DEBUG;TRACE
+
+
diff --git a/src/MsixPackaging/Images/LargeTile.scale-100.png b/src/MsixPackaging/Images/LargeTile.scale-100.png
new file mode 100644
index 0000000000000000000000000000000000000000..86298dfa5151fe175bbc019eab8fd207683e11b0
GIT binary patch
literal 11347
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
literal 0
HcmV?d00001
diff --git a/src/MsixPackaging/Images/LargeTile.scale-125.png b/src/MsixPackaging/Images/LargeTile.scale-125.png
new file mode 100644
index 0000000000000000000000000000000000000000..660b167a331284ecef2df14e95b2e9afd4605258
GIT binary patch
literal 14791
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
literal 0
HcmV?d00001
diff --git a/src/MsixPackaging/Images/LargeTile.scale-150.png b/src/MsixPackaging/Images/LargeTile.scale-150.png
new file mode 100644
index 0000000000000000000000000000000000000000..20cefa70c34b0d0d59c6a22f269730b819c2f126
GIT binary patch
literal 19013
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
literal 0
HcmV?d00001
diff --git a/src/MsixPackaging/Images/LargeTile.scale-200.png b/src/MsixPackaging/Images/LargeTile.scale-200.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f6765fceaa92e0074997c8b5a436adac2bdc974
GIT binary patch
literal 25916
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 |