diff --git a/ConsoleInterface/ConsoleInterface.csproj b/ConsoleInterface/ConsoleInterface.csproj index 6e3dcff..378d1d2 100644 --- a/ConsoleInterface/ConsoleInterface.csproj +++ b/ConsoleInterface/ConsoleInterface.csproj @@ -6,6 +6,7 @@ true win-x64 true + exe net5.0;netstandard2.1 7.3 diff --git a/ConsoleInterface/Program.cs b/ConsoleInterface/Program.cs index b8696c9..56bbf5b 100644 --- a/ConsoleInterface/Program.cs +++ b/ConsoleInterface/Program.cs @@ -1,8 +1,5 @@ -using System.Collections.Generic; -using System.IO; -using CommandLine; +using CommandLine; using Image.Files; -using Image.Output; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; @@ -12,16 +9,17 @@ using Microsoft.Extensions.Logging.Abstractions; namespace ConsoleInterface { - internal static class Program + public static class Program { - private static readonly ILogger Logger = NullLogger.Instance; + private static ILoggerFactory _loggerFactory; + public static readonly ILogger Logger = NullLogger.Instance; /// /// The console interface for the project and the main entrypoint. /// /// Command line provided args. // ReSharper disable once UnusedMember.Local - private static void Main(IEnumerable args) + public static void Main(string[] args) { Parser.Default.ParseArguments(args).WithParsed(RunOptions); } @@ -31,11 +29,11 @@ namespace ConsoleInterface /// private static void RunOptions(Options options) { - var loggerFactory = LoggerFactory.Create(b => b.AddConsole()); - TaskExecutor.Logger = loggerFactory.CreateLogger(nameof(TaskExecutor)); - LocalSystemFilesRetriever.Logger = loggerFactory.CreateLogger(nameof(LocalSystemFilesRetriever)); + _loggerFactory = LoggerFactory.Create(b => b.AddConsole()); + TaskExecutor.Logger = _loggerFactory.CreateLogger(nameof(TaskExecutor)); + LocalSystemFilesRetriever.Logger = _loggerFactory.CreateLogger(nameof(LocalSystemFilesRetriever)); KeepFilenameFormatter.Logger = - loggerFactory.CreateLogger(nameof(KeepFilenameFormatter)); + _loggerFactory.CreateLogger(nameof(KeepFilenameFormatter)); CreateDestinationDirectory(options.DestinationDirectory); var outputFormatter = KeepFilenameFormatter.Create(options.DestinationDirectory); @@ -49,16 +47,18 @@ namespace ConsoleInterface executor.ParallelCleanImages(filesRetriever.GetFilenamesFromPath(options.SourceDirectory)); } - + /// /// Creates the directory if it doesn't exist. /// /// The destination directory. private static void CreateDestinationDirectory(string destinationDirectory) { - if (Directory.Exists(destinationDirectory)) return; - Logger.LogWarning("Output directory does not exist. Creating."); - Directory.CreateDirectory(destinationDirectory); + if (FileSystemHelpers.Logger == null) + { + FileSystemHelpers.Logger = _loggerFactory.CreateLogger(nameof(FileSystemHelpers)); + } + FileSystemHelpers.CreateDestinationDirectory(destinationDirectory); } /// diff --git a/ConsoleInterface/TaskExecutor.cs b/ConsoleInterface/TaskExecutor.cs index 9ed767f..3ba11a0 100644 --- a/ConsoleInterface/TaskExecutor.cs +++ b/ConsoleInterface/TaskExecutor.cs @@ -2,8 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -using Image.Compressor; -using Image.Remover; +using Image.Core; using ImageMagick; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; diff --git a/ConsoleInterface/TaskExecutorOptions.cs b/ConsoleInterface/TaskExecutorOptions.cs index bc8432f..93f30ec 100644 --- a/ConsoleInterface/TaskExecutorOptions.cs +++ b/ConsoleInterface/TaskExecutorOptions.cs @@ -1,5 +1,5 @@ using System; -using Image.Output; +using Image.Files; namespace ConsoleInterface { diff --git a/DesktopApplication/App.config b/DesktopApplication/App.config deleted file mode 100644 index 193aecc..0000000 --- a/DesktopApplication/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/DesktopApplication/App.xaml b/DesktopApplication/App.xaml deleted file mode 100644 index da18e89..0000000 --- a/DesktopApplication/App.xaml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/DesktopApplication/App.xaml.cs b/DesktopApplication/App.xaml.cs deleted file mode 100644 index 4479463..0000000 --- a/DesktopApplication/App.xaml.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace DesktopApplication -{ - /// - /// Interaction logic for App.xaml - /// - public partial class App - { - } -} \ No newline at end of file diff --git a/DesktopApplication/DesktopApplication.csproj b/DesktopApplication/DesktopApplication.csproj deleted file mode 100644 index 1d3cfdf..0000000 --- a/DesktopApplication/DesktopApplication.csproj +++ /dev/null @@ -1,90 +0,0 @@ - - - - - Debug - AnyCPU - {47866D0C-006D-4545-99F2-487614147EA0} - WinExe - DesktopApplication - DesktopApplication - v4.8 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - true - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - 4.0 - - - - - - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - App.xaml - Code - - - MainWindow.xaml - Code - - - - - Code - - - True - True - Resources.resx - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - - - - - {10ad7910-c8aa-43ed-9231-ebe267ac270f} - ImageCore - - - - \ No newline at end of file diff --git a/DesktopApplication/MainWindow.xaml b/DesktopApplication/MainWindow.xaml deleted file mode 100644 index ec17c57..0000000 --- a/DesktopApplication/MainWindow.xaml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/DesktopApplication/MainWindow.xaml.cs b/DesktopApplication/MainWindow.xaml.cs deleted file mode 100644 index 56f2cb7..0000000 --- a/DesktopApplication/MainWindow.xaml.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows; -using System.Windows.Controls.Primitives; -using System.Windows.Input; - -namespace DesktopApplication -{ - /// - /// Interaction logic for MainWindow.xaml - /// - public partial class MainWindow - { - public static readonly List files = new List(); - public MainWindow() - { - InitializeComponent(); - files.Add("adsd"); - files.Add("adsd"); - files.Add("adsd"); - files.Add("adsd"); - files.Add("adsd"); - files.Add("adsd"); - files.Add("adsd"); - files.Add("adsd"); - files.Add("adsd"); - files.Add("adsd"); - files.Add("adsd"); - files.Add("adsd"); - files.Add("adsd"); - files.Add("adsd"); - files.Add("aaaaaxxx"); - files.Add("aaaaaxxx"); - files.Add("aaaaaxxx"); - files.Add("aaaaaxxx"); - files.Add("aaaaaxxx"); - files.Add("aaaaaxxx"); - files.Add("aaaaaxxx"); - files.Add("aaaaaxxx"); - files.Add("aaaaaxxx"); - files.Add("aaaaaxxx"); - files.Add("aaaaaxxx"); - PickedFilesView.ItemsSource = files; - } - - private void PickFilesBtn_OnClick(object sender, RoutedEventArgs e) - { - Console.WriteLine("PickFilesBtn_OnClick - On Click"); - } - - private void CleanFilesBtn_OnClick(object sender, RoutedEventArgs e) - { - Console.WriteLine("CleanFilesBtn_OnClick - On Click"); - - } - } -} \ No newline at end of file diff --git a/DesktopApplication/Properties/AssemblyInfo.cs b/DesktopApplication/Properties/AssemblyInfo.cs deleted file mode 100644 index c3db08f..0000000 --- a/DesktopApplication/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Windows; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("DesktopApplication")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("DesktopApplication")] -[assembly: AssemblyCopyright("Copyright © 2022")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -//In order to begin building localizable applications, set -//CultureYouAreCodingWith in your .csproj file -//inside a . For example, if you are using US english -//in your source files, set the to en-US. Then uncomment -//the NeutralResourceLanguage attribute below. Update the "en-US" in -//the line below to match the UICulture setting in the project file. - -//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] - - -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] - - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/DesktopApplication/Properties/Resources.Designer.cs b/DesktopApplication/Properties/Resources.Designer.cs deleted file mode 100644 index 31ef75f..0000000 --- a/DesktopApplication/Properties/Resources.Designer.cs +++ /dev/null @@ -1,69 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace DesktopApplication.Properties -{ - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", - "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", - "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState - .Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = - new global::System.Resources.ResourceManager("DesktopApplication.Properties.Resources", - typeof(Resources).Assembly); - resourceMan = temp; - } - - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState - .Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get { return resourceCulture; } - set { resourceCulture = value; } - } - } -} \ No newline at end of file diff --git a/DesktopApplication/Properties/Resources.resx b/DesktopApplication/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/DesktopApplication/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/ImageCore.Tests/TestCompressor.cs b/ImageCore.Tests/TestCompressor.cs index a82473e..94a7602 100644 --- a/ImageCore.Tests/TestCompressor.cs +++ b/ImageCore.Tests/TestCompressor.cs @@ -1,6 +1,6 @@ using System; using System.IO; -using Image.Compressor; +using Image.Core; using Xunit; namespace ImageCore.Tests diff --git a/ImageCore.Tests/TestKeepFilenameFormatter.cs b/ImageCore.Tests/TestKeepFilenameFormatter.cs index 266d64f..8ca40e2 100644 --- a/ImageCore.Tests/TestKeepFilenameFormatter.cs +++ b/ImageCore.Tests/TestKeepFilenameFormatter.cs @@ -1,5 +1,5 @@ using System; -using Image.Output; +using Image.Files; using Xunit; namespace ImageCore.Tests diff --git a/ImageCore.Tests/TestMetadataRemover.cs b/ImageCore.Tests/TestMetadataRemover.cs index f0986e1..b36ae6a 100644 --- a/ImageCore.Tests/TestMetadataRemover.cs +++ b/ImageCore.Tests/TestMetadataRemover.cs @@ -1,5 +1,4 @@ -using Image.Compressor; -using Image.Remover; +using Image.Core; using ImageMagick; using Moq; using Xunit; diff --git a/ImageCore/Remover/ExifMetadataRemoverAndCompressor.cs b/ImageCore/Core/ExifMetadataRemoverAndCompressor.cs similarity index 94% rename from ImageCore/Remover/ExifMetadataRemoverAndCompressor.cs rename to ImageCore/Core/ExifMetadataRemoverAndCompressor.cs index 2b5a1c9..adf15dd 100644 --- a/ImageCore/Remover/ExifMetadataRemoverAndCompressor.cs +++ b/ImageCore/Core/ExifMetadataRemoverAndCompressor.cs @@ -1,7 +1,6 @@ -using Image.Compressor; -using ImageMagick; +using ImageMagick; -namespace Image.Remover +namespace Image.Core { /// /// MetadataRemover removes metadata from an image. The exif profile. diff --git a/ImageCore/Compressor/ICompressor.cs b/ImageCore/Core/ICompressor.cs similarity index 92% rename from ImageCore/Compressor/ICompressor.cs rename to ImageCore/Core/ICompressor.cs index c72044e..1d6835f 100644 --- a/ImageCore/Compressor/ICompressor.cs +++ b/ImageCore/Core/ICompressor.cs @@ -1,4 +1,4 @@ -namespace Image.Compressor +namespace Image.Core { /// /// ICompressor is an interface for implementing image compressors. diff --git a/ImageCore/Remover/IMetadataRemover.cs b/ImageCore/Core/IMetadataRemover.cs similarity index 93% rename from ImageCore/Remover/IMetadataRemover.cs rename to ImageCore/Core/IMetadataRemover.cs index 4121692..ac27938 100644 --- a/ImageCore/Remover/IMetadataRemover.cs +++ b/ImageCore/Core/IMetadataRemover.cs @@ -1,4 +1,4 @@ -namespace Image.Remover +namespace Image.Core { /// /// Interface for implementing metadata removers. diff --git a/ImageCore/Compressor/LosslessCompressor.cs b/ImageCore/Core/LosslessCompressor.cs similarity index 96% rename from ImageCore/Compressor/LosslessCompressor.cs rename to ImageCore/Core/LosslessCompressor.cs index 740f84d..b8bb397 100644 --- a/ImageCore/Compressor/LosslessCompressor.cs +++ b/ImageCore/Core/LosslessCompressor.cs @@ -1,6 +1,6 @@ using ImageMagick; -namespace Image.Compressor +namespace Image.Core { /// /// LosslessCompressor compresses an image using lossless compression provided by ImageMagick. diff --git a/ImageCore/Compressor/NullCompressor.cs b/ImageCore/Core/NullCompressor.cs similarity index 92% rename from ImageCore/Compressor/NullCompressor.cs rename to ImageCore/Core/NullCompressor.cs index 4045ab1..9d7545b 100644 --- a/ImageCore/Compressor/NullCompressor.cs +++ b/ImageCore/Core/NullCompressor.cs @@ -1,4 +1,4 @@ -namespace Image.Compressor +namespace Image.Core { /// /// Does nothing. Using this Compressor will have no effect. diff --git a/ImageCore/Files/FileSystemHelpers.cs b/ImageCore/Files/FileSystemHelpers.cs new file mode 100644 index 0000000..a9abc45 --- /dev/null +++ b/ImageCore/Files/FileSystemHelpers.cs @@ -0,0 +1,31 @@ +using System; +using System.IO; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; + +namespace Image.Files +{ + public static class FileSystemHelpers + { + public static ILogger Logger = NullLogger.Instance; + + /// + /// Creates the directory if it doesn't exist. + /// + /// The destination directory. + public static void CreateDestinationDirectory(string destinationDirectory) + { +#if NETSTANDARD2_1 + Console.WriteLine(""); +#elif NETSTANDARD2_0 + Console.WriteLine(""); +#elif NET5_0 + if (Directory.Exists(destinationDirectory)) return; + //Logger.LogWarning("Output directory does not exist. Creating."); + Directory.CreateDirectory(destinationDirectory); +#endif + + + } + } +} \ No newline at end of file diff --git a/ImageCore/Output/IFileOutputFormatter.cs b/ImageCore/Files/IFileOutputFormatter.cs similarity index 95% rename from ImageCore/Output/IFileOutputFormatter.cs rename to ImageCore/Files/IFileOutputFormatter.cs index 353ce86..d912f47 100644 --- a/ImageCore/Output/IFileOutputFormatter.cs +++ b/ImageCore/Files/IFileOutputFormatter.cs @@ -1,4 +1,4 @@ -namespace Image.Output +namespace Image.Files { /// /// IOutputFormatter is an interface for generating the output path and destination file name. diff --git a/ImageCore/Output/KeepFilenameFormatter.cs b/ImageCore/Files/KeepFilenameFormatter.cs similarity index 98% rename from ImageCore/Output/KeepFilenameFormatter.cs rename to ImageCore/Files/KeepFilenameFormatter.cs index 3ca403a..ff6f36f 100644 --- a/ImageCore/Output/KeepFilenameFormatter.cs +++ b/ImageCore/Files/KeepFilenameFormatter.cs @@ -3,7 +3,7 @@ using Ardalis.GuardClauses; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -namespace Image.Output +namespace Image.Files { /// /// KeepFilenameFormatter keeps the original file name of the image when formatting the new output diff --git a/ImgMetadataRemover.sln b/ImgMetadataRemover.sln index 98af448..2dce599 100644 --- a/ImgMetadataRemover.sln +++ b/ImgMetadataRemover.sln @@ -9,8 +9,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleInterface", "Console EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ImageCore.Tests", "ImageCore.Tests\ImageCore.Tests.csproj", "{8EB81515-E62C-4408-84E0-6C27E0293902}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DesktopApplication", "DesktopApplication\DesktopApplication.csproj", "{47866D0C-006D-4545-99F2-487614147EA0}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -85,26 +83,6 @@ Global {8EB81515-E62C-4408-84E0-6C27E0293902}.Release|x64.Build.0 = Release|Any CPU {8EB81515-E62C-4408-84E0-6C27E0293902}.Release|x86.ActiveCfg = Release|Any CPU {8EB81515-E62C-4408-84E0-6C27E0293902}.Release|x86.Build.0 = Release|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Debug|ARM.ActiveCfg = Debug|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Debug|ARM.Build.0 = Debug|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Debug|ARM64.Build.0 = Debug|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Debug|x64.ActiveCfg = Debug|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Debug|x64.Build.0 = Debug|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Debug|x86.ActiveCfg = Debug|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Debug|x86.Build.0 = Debug|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Release|Any CPU.Build.0 = Release|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Release|ARM.ActiveCfg = Release|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Release|ARM.Build.0 = Release|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Release|ARM64.ActiveCfg = Release|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Release|ARM64.Build.0 = Release|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Release|x64.ActiveCfg = Release|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Release|x64.Build.0 = Release|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Release|x86.ActiveCfg = Release|Any CPU - {47866D0C-006D-4545-99F2-487614147EA0}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ImgMetadataRemover.sln.DotSettings.user b/ImgMetadataRemover.sln.DotSettings.user index f219feb..1c497a9 100644 --- a/ImgMetadataRemover.sln.DotSettings.user +++ b/ImgMetadataRemover.sln.DotSettings.user @@ -2,6 +2,7 @@ <AssemblyExplorer> <Assembly Path="C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\3.1.0\ref\netcoreapp3.1\System.Net.Mail.dll" /> <Assembly Path="C:\Users\nutiu\.nuget\packages\magick.net.core\8.6.1\lib\netstandard21\Magick.NET.Core.dll" /> + <Assembly Path="C:\Users\nutiu\.nuget\packages\microsoft.extensions.logging.abstractions\6.0.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll" /> </AssemblyExplorer> <SessionState ContinuousTestingMode="0" IsActive="True" Name="TestGetFilenamesFromPath" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> <Project Location="C:\Users\nutiu\RiderProjects\ImgMetadataRemover\ImageCore.Tests" Presentation="&lt;ImageCore.Tests&gt;" /> diff --git a/global.json b/global.json index bc5974a..4db6a48 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "3.1", + "version": "5.0", "rollForward": "latestMajor", "allowPrerelease": false }