diff --git a/AutoUpdate/App.config b/AutoUpdate/App.config index e0f9780e6c..082fa6c073 100644 --- a/AutoUpdate/App.config +++ b/AutoUpdate/App.config @@ -1,7 +1,7 @@  - + - - + + \ No newline at end of file diff --git a/AutoUpdate/CKAN-autoupdate.csproj b/AutoUpdate/CKAN-autoupdate.csproj index 3c656bcbfb..c630e4b7bd 100644 --- a/AutoUpdate/CKAN-autoupdate.csproj +++ b/AutoUpdate/CKAN-autoupdate.csproj @@ -1,5 +1,5 @@  - + Debug @@ -11,6 +11,8 @@ ..\assets\ckan.ico v4.5 512 + true + true ..\_build\out\$(AssemblyName)\$(Configuration)\bin\ ..\_build\out\$(AssemblyName)\$(Configuration)\obj\ diff --git a/CKAN.sln b/CKAN.sln index 70e64f7f44..d733f4d59a 100644 --- a/CKAN.sln +++ b/CKAN.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27004.2008 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30225.117 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CKAN-core", "Core\CKAN-core.csproj", "{3B9AEA22-FA3B-4E43-9283-EABDD81CF271}" EndProject @@ -19,58 +19,58 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Tests\Tests.csproj EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU Debug_NetCore|Any CPU = Debug_NetCore|Any CPU + Debug|Any CPU = Debug|Any CPU Release_NetCore|Any CPU = Release_NetCore|Any CPU + Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3B9AEA22-FA3B-4E43-9283-EABDD81CF271}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B9AEA22-FA3B-4E43-9283-EABDD81CF271}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B9AEA22-FA3B-4E43-9283-EABDD81CF271}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B9AEA22-FA3B-4E43-9283-EABDD81CF271}.Release|Any CPU.Build.0 = Release|Any CPU {3B9AEA22-FA3B-4E43-9283-EABDD81CF271}.Debug_NetCore|Any CPU.ActiveCfg = Debug_NetCore|Any CPU {3B9AEA22-FA3B-4E43-9283-EABDD81CF271}.Debug_NetCore|Any CPU.Build.0 = Debug_NetCore|Any CPU + {3B9AEA22-FA3B-4E43-9283-EABDD81CF271}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B9AEA22-FA3B-4E43-9283-EABDD81CF271}.Debug|Any CPU.Build.0 = Debug|Any CPU {3B9AEA22-FA3B-4E43-9283-EABDD81CF271}.Release_NetCore|Any CPU.ActiveCfg = Release_NetCore|Any CPU {3B9AEA22-FA3B-4E43-9283-EABDD81CF271}.Release_NetCore|Any CPU.Build.0 = Release_NetCore|Any CPU + {3B9AEA22-FA3B-4E43-9283-EABDD81CF271}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B9AEA22-FA3B-4E43-9283-EABDD81CF271}.Release|Any CPU.Build.0 = Release|Any CPU + {E5B1C768-349E-4DAF-A134-56E4ECF1EEEF}.Debug_NetCore|Any CPU.ActiveCfg = Debug|Any CPU {E5B1C768-349E-4DAF-A134-56E4ECF1EEEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E5B1C768-349E-4DAF-A134-56E4ECF1EEEF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5B1C768-349E-4DAF-A134-56E4ECF1EEEF}.Release_NetCore|Any CPU.ActiveCfg = Release|Any CPU {E5B1C768-349E-4DAF-A134-56E4ECF1EEEF}.Release|Any CPU.ActiveCfg = Release|Any CPU {E5B1C768-349E-4DAF-A134-56E4ECF1EEEF}.Release|Any CPU.Build.0 = Release|Any CPU - {E5B1C768-349E-4DAF-A134-56E4ECF1EEEF}.Debug_NetCore|Any CPU.ActiveCfg = Debug|Any CPU - {E5B1C768-349E-4DAF-A134-56E4ECF1EEEF}.Release_NetCore|Any CPU.ActiveCfg = Release|Any CPU + {E97D81F6-85E2-4F1F-906D-BE21766602E5}.Debug_NetCore|Any CPU.ActiveCfg = Debug|Any CPU {E97D81F6-85E2-4F1F-906D-BE21766602E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E97D81F6-85E2-4F1F-906D-BE21766602E5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E97D81F6-85E2-4F1F-906D-BE21766602E5}.Release_NetCore|Any CPU.ActiveCfg = Release|Any CPU {E97D81F6-85E2-4F1F-906D-BE21766602E5}.Release|Any CPU.ActiveCfg = Release|Any CPU {E97D81F6-85E2-4F1F-906D-BE21766602E5}.Release|Any CPU.Build.0 = Release|Any CPU - {E97D81F6-85E2-4F1F-906D-BE21766602E5}.Debug_NetCore|Any CPU.ActiveCfg = Debug|Any CPU - {E97D81F6-85E2-4F1F-906D-BE21766602E5}.Release_NetCore|Any CPU.ActiveCfg = Release|Any CPU + {DA5C7023-9A3B-4204-AE2F-BBA6C388B436}.Debug_NetCore|Any CPU.ActiveCfg = Debug|Any CPU + {DA5C7023-9A3B-4204-AE2F-BBA6C388B436}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA5C7023-9A3B-4204-AE2F-BBA6C388B436}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DA5C7023-9A3B-4204-AE2F-BBA6C388B436}.Release_NetCore|Any CPU.ActiveCfg = Release|Any CPU + {DA5C7023-9A3B-4204-AE2F-BBA6C388B436}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DA5C7023-9A3B-4204-AE2F-BBA6C388B436}.Release|Any CPU.Build.0 = Release|Any CPU + {A79F9D54-315C-472B-928F-713A5860B2BE}.Debug_NetCore|Any CPU.ActiveCfg = Debug|Any CPU {A79F9D54-315C-472B-928F-713A5860B2BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A79F9D54-315C-472B-928F-713A5860B2BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A79F9D54-315C-472B-928F-713A5860B2BE}.Release_NetCore|Any CPU.ActiveCfg = Release|Any CPU {A79F9D54-315C-472B-928F-713A5860B2BE}.Release|Any CPU.ActiveCfg = Release|Any CPU {A79F9D54-315C-472B-928F-713A5860B2BE}.Release|Any CPU.Build.0 = Release|Any CPU - {A79F9D54-315C-472B-928F-713A5860B2BE}.Debug_NetCore|Any CPU.ActiveCfg = Debug|Any CPU - {A79F9D54-315C-472B-928F-713A5860B2BE}.Release_NetCore|Any CPU.ActiveCfg = Release|Any CPU + {4336F356-33DB-442A-BF74-5E89AF47A5B9}.Debug_NetCore|Any CPU.ActiveCfg = Debug|Any CPU {4336F356-33DB-442A-BF74-5E89AF47A5B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4336F356-33DB-442A-BF74-5E89AF47A5B9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4336F356-33DB-442A-BF74-5E89AF47A5B9}.Release_NetCore|Any CPU.ActiveCfg = Release|Any CPU {4336F356-33DB-442A-BF74-5E89AF47A5B9}.Release|Any CPU.ActiveCfg = Release|Any CPU {4336F356-33DB-442A-BF74-5E89AF47A5B9}.Release|Any CPU.Build.0 = Release|Any CPU - {4336F356-33DB-442A-BF74-5E89AF47A5B9}.Debug_NetCore|Any CPU.ActiveCfg = Debug|Any CPU - {4336F356-33DB-442A-BF74-5E89AF47A5B9}.Release_NetCore|Any CPU.ActiveCfg = Release|Any CPU - {4F41255E-8BC1-465B-82D5-1C5665BC099A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4F41255E-8BC1-465B-82D5-1C5665BC099A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4F41255E-8BC1-465B-82D5-1C5665BC099A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4F41255E-8BC1-465B-82D5-1C5665BC099A}.Release|Any CPU.Build.0 = Release|Any CPU {4F41255E-8BC1-465B-82D5-1C5665BC099A}.Debug_NetCore|Any CPU.ActiveCfg = Debug_NetCore|Any CPU {4F41255E-8BC1-465B-82D5-1C5665BC099A}.Debug_NetCore|Any CPU.Build.0 = Debug_NetCore|Any CPU + {4F41255E-8BC1-465B-82D5-1C5665BC099A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F41255E-8BC1-465B-82D5-1C5665BC099A}.Debug|Any CPU.Build.0 = Debug|Any CPU {4F41255E-8BC1-465B-82D5-1C5665BC099A}.Release_NetCore|Any CPU.ActiveCfg = Release_NetCore|Any CPU {4F41255E-8BC1-465B-82D5-1C5665BC099A}.Release_NetCore|Any CPU.Build.0 = Release_NetCore|Any CPU - {DA5C7023-9A3B-4204-AE2F-BBA6C388B436}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DA5C7023-9A3B-4204-AE2F-BBA6C388B436}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DA5C7023-9A3B-4204-AE2F-BBA6C388B436}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DA5C7023-9A3B-4204-AE2F-BBA6C388B436}.Release|Any CPU.Build.0 = Release|Any CPU - {DA5C7023-9A3B-4204-AE2F-BBA6C388B436}.Debug_NetCore|Any CPU.ActiveCfg = Debug|Any CPU - {DA5C7023-9A3B-4204-AE2F-BBA6C388B436}.Release_NetCore|Any CPU.ActiveCfg = Release|Any CPU + {4F41255E-8BC1-465B-82D5-1C5665BC099A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F41255E-8BC1-465B-82D5-1C5665BC099A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CKAN.sln.DotSettings b/CKAN.sln.DotSettings deleted file mode 100644 index 71e395edea..0000000000 --- a/CKAN.sln.DotSettings +++ /dev/null @@ -1,18 +0,0 @@ - - DO_NOT_SHOW - DO_NOT_SHOW - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - False - Not Implemented - True - True - 207, 157, 50 - True - HACK - (?<=\W|^)(?<TAG>HACK)(\W|$)(.*) - Question - True - BUG - Warning - True - TODO \ No newline at end of file diff --git a/Cmdline/CKAN-cmdline.csproj b/Cmdline/CKAN-cmdline.csproj index 1ddff77a06..5893726fdd 100644 --- a/Cmdline/CKAN-cmdline.csproj +++ b/Cmdline/CKAN-cmdline.csproj @@ -1,5 +1,5 @@  - + Debug @@ -12,6 +12,8 @@ ..\assets\ckan.ico v4.5 512 + true + true ..\_build\out\$(AssemblyName)\$(Configuration)\bin\ ..\_build\out\$(AssemblyName)\$(Configuration)\obj\ @@ -35,24 +37,15 @@ 4 7 - - true - - - ..\_build\lib\nuget\CommandLineParser.1.9.71\lib\net45\CommandLine.dll - - - ..\_build\lib\nuget\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll - + + + + + + - - ..\_build\lib\nuget\log4net.2.0.8\lib\net45-full\log4net.dll - - - ..\_build\lib\nuget\Autofac.4.9.4\lib\net45\Autofac.dll - @@ -73,8 +66,8 @@ - + @@ -91,9 +84,12 @@ - + + {DA5C7023-9A3B-4204-AE2F-BBA6C388B436} + CKAN-ConsoleUI + {3B9AEA22-FA3B-4E43-9283-EABDD81CF271} CKAN-core @@ -102,10 +98,6 @@ {A79F9D54-315C-472B-928F-713A5860B2BE} CKAN-GUI - - {DA5C7023-9A3B-4204-AE2F-BBA6C388B436} - CKAN-ConsoleUI - @@ -117,4 +109,4 @@ - + \ No newline at end of file diff --git a/Cmdline/app.config b/Cmdline/app.config index 8747823324..5035d4fa63 100644 --- a/Cmdline/app.config +++ b/Cmdline/app.config @@ -1,6 +1,6 @@ - + - + \ No newline at end of file diff --git a/Cmdline/packages.config b/Cmdline/packages.config deleted file mode 100644 index 5d5cbeee5c..0000000000 --- a/Cmdline/packages.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/ConsoleUI/App.config b/ConsoleUI/App.config index d0ea98a26c..bd9d7e75a7 100644 --- a/ConsoleUI/App.config +++ b/ConsoleUI/App.config @@ -1,12 +1,10 @@ - + - - - - - + + + - - + + - + \ No newline at end of file diff --git a/ConsoleUI/CKAN-ConsoleUI.csproj b/ConsoleUI/CKAN-ConsoleUI.csproj index 945f65aea6..1579fb0fba 100644 --- a/ConsoleUI/CKAN-ConsoleUI.csproj +++ b/ConsoleUI/CKAN-ConsoleUI.csproj @@ -1,5 +1,5 @@  - + Debug @@ -11,21 +11,8 @@ ..\assets\ckan.ico v4.5 512 - false - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.0 - false - true + true + true ..\_build\out\$(AssemblyName)\$(Configuration)\bin\ ..\_build\out\$(AssemblyName)\$(Configuration)\obj\ @@ -51,16 +38,11 @@ $(OutputPath)$(AssemblyName).xml 7 - - true - - - ..\_build\lib\nuget\log4net.2.0.8\lib\net45-full\log4net.dll - - - ..\_build\lib\nuget\Autofac.4.9.4\lib\net45\Autofac.dll - + + + + @@ -79,6 +61,7 @@ + @@ -92,21 +75,20 @@ True - True Settings.settings + True - - + + - @@ -123,34 +105,11 @@ - SettingsSingleFileGenerator Settings.Designer.cs - - - False - Microsoft .NET Framework 4 %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 4.5 - true - - {3B9AEA22-FA3B-4E43-9283-EABDD81CF271} @@ -167,4 +126,4 @@ - + \ No newline at end of file diff --git a/ConsoleUI/InstallScreen.cs b/ConsoleUI/InstallScreen.cs index 31a0a44902..b48667c56d 100644 --- a/ConsoleUI/InstallScreen.cs +++ b/ConsoleUI/InstallScreen.cs @@ -93,7 +93,7 @@ public override void Run(Action process = null) } catch (FileExistsKraken ex) { if (ex.owningModule != null) { RaiseMessage($"{ex.installingModule} tried to install {ex.filename}, but {ex.owningModule} has already installed it."); - RaiseMessage($"Please report this problem at https://github.com/KSP-CKAN/NetKAN/issues/new"); + RaiseMessage($"Please report this problem at https://github.com/KSP-CKAN/NetKAN/issues/new/choose"); } else { RaiseMessage($"{ex.installingModule} tried to install {ex.filename}, but it is already installed."); RaiseMessage($"Please manually uninstall the mod that owns this file to install {ex.installingModule}."); diff --git a/ConsoleUI/packages.config b/ConsoleUI/packages.config deleted file mode 100644 index f651f6c5fc..0000000000 --- a/ConsoleUI/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/Core/CKAN-core.csproj b/Core/CKAN-core.csproj index d0f6660f9f..106116e83f 100644 --- a/Core/CKAN-core.csproj +++ b/Core/CKAN-core.csproj @@ -1,69 +1,45 @@  + + {3B9AEA22-FA3B-4E43-9283-EABDD81CF271} + Library + CKAN CKAN - ..\_build\out\$(AssemblyName)\obj + false + true + true + ..\_build\out\$(AssemblyName)\$(Configuration)\bin\ + ..\_build\out\$(AssemblyName)\$(Configuration)\obj\ + Debug;Release;Debug_NetCore;Release_NetCore - - - - netstandard2.0 + netstandard2.0 - net45 + net45 - - - {3B9AEA22-FA3B-4E43-9283-EABDD81CF271} - CKAN - ..\_build\out\$(AssemblyName)\$(Configuration)\bin - false - - true portable + false + 7 - true + 7 - - - - Properties\GlobalAssemblyVersionInfo.cs - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - + - - - - - - - - - - @@ -73,11 +49,33 @@ - + + + + + + + + + + + Properties\GlobalAssemblyVersionInfo.cs + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + PreserveNewest + + - - + \ No newline at end of file diff --git a/Core/Net/Repo.cs b/Core/Net/Repo.cs index 515ffb907b..97f74b8e21 100644 --- a/Core/Net/Repo.cs +++ b/Core/Net/Repo.cs @@ -370,7 +370,7 @@ private static List UpdateRegistryFromTarGz(string path, out SortedD using (GZipInputStream gzipStream = new GZipInputStream(inputStream)) { // Create a handle for the tar stream. - using (TarInputStream tarStream = new TarInputStream(gzipStream)) + using (TarInputStream tarStream = new TarInputStream(gzipStream, Encoding.UTF8)) { // Walk the archive, looking for .ckan files. const string filter = @"\.ckan$"; diff --git a/Core/log4net.xml b/Core/log4net.xml new file mode 100644 index 0000000000..0f72ef438e --- /dev/null +++ b/Core/log4net.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GUI/App.config b/GUI/App.config index 9b21b5a140..bd9d7e75a7 100644 --- a/GUI/App.config +++ b/GUI/App.config @@ -1,10 +1,10 @@ - + - - + + - + \ No newline at end of file diff --git a/GUI/CKAN-GUI.csproj b/GUI/CKAN-GUI.csproj index 1d8c7cf4c6..5b18e9056c 100644 --- a/GUI/CKAN-GUI.csproj +++ b/GUI/CKAN-GUI.csproj @@ -1,5 +1,5 @@  - + Debug @@ -11,23 +11,10 @@ ..\assets\ckan.ico v4.5 512 - false + true + true ..\_build\out\$(AssemblyName)\$(Configuration)\bin\ ..\_build\out\$(AssemblyName)\$(Configuration)\obj\ - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.0 - false - true AnyCPU @@ -49,26 +36,15 @@ 4 7 - - true - - - ..\_build\lib\nuget\Autofac.4.9.4\lib\net45\Autofac.dll - - - ..\_build\lib\nuget\ini-parser.3.4.0\lib\net20\INIFileParser.dll - - - ..\_build\lib\nuget\log4net.2.0.8\lib\net45-full\log4net.dll - - - ..\_build\lib\nuget\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll - + + + + + + - - @@ -236,8 +212,12 @@ ManageMods.cs - - + + Component + + + Component + Component @@ -278,7 +258,9 @@ Form - + + Form + Form @@ -612,34 +594,11 @@ - SettingsSingleFileGenerator Settings.Designer.cs - - - False - Microsoft .NET Framework 4 %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 4.5 - true - - {3B9AEA22-FA3B-4E43-9283-EABDD81CF271} @@ -650,22 +609,10 @@ PreserveNewest - - - - - - - - - - - - - + \ No newline at end of file diff --git a/GUI/Controls/ManageMods.cs b/GUI/Controls/ManageMods.cs index 6a3d15d3c4..7cf294ed87 100644 --- a/GUI/Controls/ManageMods.cs +++ b/GUI/Controls/ManageMods.cs @@ -1076,7 +1076,8 @@ private void _UpdateModsList(Dictionary old_modules = null) mainModList.Modules = new ReadOnlyCollection( mainModList.full_list_of_mod_rows.Values.Select(row => row.Tag as GUIMod).ToList()); - UpdateChangeSetAndConflicts(Main.Instance.CurrentInstance, registry); + // C# 7.0: Executes the task and discards it + _ = UpdateChangeSetAndConflicts(Main.Instance.CurrentInstance, registry); Main.Instance.Wait.AddLogMessage(Properties.Resources.MainModListUpdatingFilters); diff --git a/GUI/Model/GUIMod.cs b/GUI/Model/GUIMod.cs index 8405d549cf..def1a13cd9 100644 --- a/GUI/Model/GUIMod.cs +++ b/GUI/Model/GUIMod.cs @@ -40,7 +40,8 @@ public CkanModule SelectedMod } Main.Instance.ManageMods.MarkModForInstall(Identifier, selectedMod == null); - Main.Instance.ManageMods.UpdateChangeSetAndConflicts( + // C# 7.0: Executes the task and discards it + _ = Main.Instance.ManageMods.UpdateChangeSetAndConflicts( Main.Instance.Manager.CurrentInstance, RegistryManager.Instance(Main.Instance.Manager.CurrentInstance).registry ); diff --git a/GUI/Properties/Resources.de-DE.resx b/GUI/Properties/Resources.de-DE.resx index 02908fc569..975cc88eb8 100644 --- a/GUI/Properties/Resources.de-DE.resx +++ b/GUI/Properties/Resources.de-DE.resx @@ -203,7 +203,7 @@ Bitte versuche `ckan update` und probiere es erneut. Wenn dieses Problem wieder auftritt, dann ist es vielleicht ein Paketfehler. Bitte melde es unter: -https://github.com/KSP-CKAN/NetKAN/issues/new +https://github.com/KSP-CKAN/NetKAN/issues/new/choose Bitte gib die folgenden Informationen mit an: @@ -247,8 +247,8 @@ Einstellungen jetzt öffnen? Fehler bei der Installation! Ein unbekannter Fehler ist aufgetreten, bitte versuche es erneut! Falls die Fehlermeldung ein Download-Problem andeutet, versuche es bitte erneut. Andernfalls melde bitte den Fehler bei uns. -Wenn du ein Fehler mit den Mod-Metadaten vermutest: https://github.com/KSP-CKAN/NetKAN/new/choose -Wenn du ein Fehler mit dem CKAN Client vermutest: https://github.com/KSP-CKAN/CKAN/new/choose +Wenn du ein Fehler mit den Mod-Metadaten vermutest: https://github.com/KSP-CKAN/NetKAN/issues/new/choose +Wenn du ein Fehler mit dem CKAN Client vermutest: https://github.com/KSP-CKAN/CKAN/issues/new/choose Installation fehlgeschlagen! Modul {0} wird von mehr als einem verfügbaren Modul bereitgestellt, bitte wähle eine der folgenden Mods: CKAN kann die Erweiterung '{0}' nicht für dich installieren. diff --git a/GUI/Properties/Resources.resx b/GUI/Properties/Resources.resx index 631c5313e5..ab8aa2cbdb 100644 --- a/GUI/Properties/Resources.resx +++ b/GUI/Properties/Resources.resx @@ -224,12 +224,12 @@ Do you really want to install it? Oh no! We tried to overwrite a file owned by another mod! Please try a `ckan update` and try again. -If this problem re-occurs, then it maybe a packaging bug. +If this problem re-occurs, then it may be a packaging bug. Please report it at: -https://github.com/KSP-CKAN/NetKAN/issues/new +https://github.com/KSP-CKAN/NetKAN/issues/new/choose -Please including the following information in your report: +Please include the following information in your report: File : {0} Installing Mod : {1} @@ -240,10 +240,10 @@ CKAN Version : {3} It looks like you're trying to install a mod which is already installed, or which conflicts with another mod which is already installed. -As a safety feature, the CKAN will *never* overwrite or alter a file +As a safety feature, CKAN will *never* overwrite or alter a file that it did not install itself. -If you wish to install {0} via the CKAN, +If you wish to install {0} via CKAN, then please manually uninstall the mod which owns: {1} diff --git a/GUI/Properties/Resources.zh-CN.resx b/GUI/Properties/Resources.zh-CN.resx index 78a057f705..f35e5d5894 100644 --- a/GUI/Properties/Resources.zh-CN.resx +++ b/GUI/Properties/Resources.zh-CN.resx @@ -117,28 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ..\..\assets\ckan.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\apply.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\ksp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\search.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\settings.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a CKAN元数据 (*.ckan)|*.ckan 导出Mod列表 - ..\Resources\update.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\backward.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\filter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\forward.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\textClear.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\star.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\thumbup.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\info.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\smile.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\alert.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\arrow_forward.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\arrow_upward.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 版本 {0} Build metadata file (buildID*.txt)|buildID*.txt 请输入新实例名称. @@ -225,7 +206,7 @@ 如果这个问题反复出现,可能时由于打包时出现bug. 请在此处报告: -https://github.com/KSP-CKAN/NetKAN/issues/new +https://github.com/KSP-CKAN/NetKAN/issues/new/choose 报告时请包括以下信息: diff --git a/GUI/packages.config b/GUI/packages.config deleted file mode 100644 index f9786188f8..0000000000 --- a/GUI/packages.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Netkan/CKAN-netkan.csproj b/Netkan/CKAN-netkan.csproj index 8bd024c8f3..ef5ec2136e 100644 --- a/Netkan/CKAN-netkan.csproj +++ b/Netkan/CKAN-netkan.csproj @@ -1,5 +1,5 @@  - + Debug @@ -12,6 +12,8 @@ ..\assets\ckan.ico v4.5 512 + true + true ..\_build\out\$(AssemblyName)\$(Configuration)\bin\ ..\_build\out\$(AssemblyName)\$(Configuration)\obj\ @@ -35,38 +37,18 @@ 4 7 - - true - - - ..\_build\lib\nuget\Autofac.4.9.4\lib\net45\Autofac.dll - - - ..\_build\lib\nuget\AWSSDK.Core.3.3.103.64\lib\net45\AWSSDK.Core.dll - - - ..\_build\lib\nuget\AWSSDK.SQS.3.3.102.31\lib\net45\AWSSDK.SQS.dll - - - ..\_build\lib\nuget\CommandLineParser.1.9.71\lib\net45\CommandLine.dll - - - ..\_build\lib\nuget\ICSharpCode.SharpZipLib.Patched.0.86.5.1\lib\net20\ICSharpCode.SharpZipLib.dll - True - - - ..\_build\lib\nuget\log4net.2.0.8\lib\net45-full\log4net.dll - - - ..\_build\lib\nuget\Namotion.Reflection.1.0.7\lib\net45\Namotion.Reflection.dll - - - ..\_build\lib\nuget\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll - - - ..\_build\lib\nuget\NJsonSchema.10.0.27\lib\net45\NJsonSchema.dll - + + + + + + + + + + + @@ -77,9 +59,7 @@ Properties\GlobalAssemblyInfo.cs - - Code - + @@ -88,8 +68,8 @@ - + @@ -120,8 +100,8 @@ - + @@ -142,31 +122,31 @@ + + + - - - - - - + + + + - + - + - @@ -178,7 +158,6 @@ Always - @@ -187,11 +166,13 @@ - + + PreserveNewest + - + \ No newline at end of file diff --git a/Netkan/CmdLineOptions.cs b/Netkan/CmdLineOptions.cs index 01fbca5af4..27183ec043 100644 --- a/Netkan/CmdLineOptions.cs +++ b/Netkan/CmdLineOptions.cs @@ -7,16 +7,16 @@ namespace CKAN.NetKAN /// internal class CmdLineOptions { - [Option('v', "verbose", DefaultValue = false, HelpText = "Show more of what's going on when running")] + [Option('v', "verbose", Default = false, HelpText = "Show more of what's going on when running")] public bool Verbose { get; set; } - [Option('d', "debug", DefaultValue = false, HelpText = "Show debugging level messages. Implies verbose")] + [Option('d', "debug", Default = false, HelpText = "Show debugging level messages. Implies verbose")] public bool Debug { get; set; } [Option("debugger", HelpText = "Launch the debugger at start")] public bool Debugger { get; set; } - [Option("outputdir", DefaultValue = ".", HelpText = "Output directory")] + [Option("outputdir", Default = ".", HelpText = "Output directory")] public string OutputDir { get; set; } [Option("cachedir", HelpText = "Cache directory for downloaded mods")] @@ -25,13 +25,13 @@ internal class CmdLineOptions [Option("github-token", HelpText = "GitHub OAuth token for API access")] public string GitHubToken { get; set; } - [Option("net-useragent", DefaultValue = null, HelpText = "Set the default User-Agent string for HTTP requests")] + [Option("net-useragent", Default = null, HelpText = "Set the default User-Agent string for HTTP requests")] public string NetUserAgent { get; set; } - [Option("releases", DefaultValue = "1", HelpText = "Number of releases to inflate, or 'all'")] + [Option("releases", Default = "1", HelpText = "Number of releases to inflate, or 'all'")] public string Releases { get; set; } - [Option("skip-releases", DefaultValue = "0", HelpText = "Number of releases to skip / index of release to inflate.")] + [Option("skip-releases", Default = "0", HelpText = "Number of releases to skip / index of release to inflate.")] public string SkipReleases { get; set; } [Option("prerelease", HelpText = "Index GitHub prereleases")] @@ -49,11 +49,7 @@ internal class CmdLineOptions [Option("validate-ckan", HelpText = "Name of .ckan file to check for errors")] public string ValidateCkan { get; set; } - [Option("version", HelpText = "Display the netkan version number and exit")] - public bool Version { get; set; } - - // TODO: How do we mark this as required? - [ValueOption(0)] + [Value(0, Required = true, HelpText = "Name of .ckan file to process.")] public string File { get; set; } } } diff --git a/Netkan/Program.cs b/Netkan/Program.cs index 69e702848d..5632cadfc1 100644 --- a/Netkan/Program.cs +++ b/Netkan/Program.cs @@ -5,10 +5,13 @@ using System.Net; using System.Text; using CommandLine; +using CommandLine.Text; + using log4net; using log4net.Core; using Newtonsoft.Json; using Newtonsoft.Json.Linq; + using CKAN.Versioning; using CKAN.NetKAN.Model; using CKAN.NetKAN.Processors; @@ -28,21 +31,59 @@ public static class Program public static int Main(string[] args) { + if (args.Any(i => i == "--debugger")) + { + Debugger.Launch(); + } + + var parser = new Parser(c => c.HelpWriter = null).ParseArguments(args); + parser.WithParsed(opt => Run(opt)); + parser.WithNotParsed(errs => + { + if (errs.IsVersion()) + { + Console.WriteLine(Meta.GetVersion(VersionFormat.Full)); + } + else + { + HelpText ht = HelpText.AutoBuild(parser, h => + { + h.AddDashesToOption = true; + h.AutoHelp = false; + h.Heading = $"NetKAN {Meta.GetVersion(VersionFormat.Full)}"; + h.Copyright = $"Copyright 2014-{DateTime.Now.Year}"; + return HelpText.DefaultParsingErrorsHandler(parser, h); + }, e => e, true); + Console.WriteLine(ht); + } + }); + + return ExitOk; + } + + private static int Run(CmdLineOptions options) + { + Program.Options = options; try { - ProcessArgs(args); + Logging.Initialize(); + + LogManager.GetRepository().Threshold = + Options.Verbose ? Level.Info + : Options.Debug ? Level.Debug + : Level.Warn; + + if (Options.NetUserAgent != null) + { + Net.UserAgentString = Options.NetUserAgent; + } // Force-allow TLS 1.2 for HTTPS URLs, because GitHub requires it. // This is on by default in .NET 4.6, but not in 4.5. ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12; - // If we see the --version flag, then display our build info - // and exit. - if (Options.Version) - { - Console.WriteLine(Meta.GetVersion(VersionFormat.Full)); - return ExitOk; - } + // Make sure Curl is all set up + Curl.Init(); if (!string.IsNullOrEmpty(Options.ValidateCkan)) { @@ -142,29 +183,6 @@ private static ModuleVersion ParseHighestVersion(string val) return val == null ? null : new ModuleVersion(val); } - private static void ProcessArgs(string[] args) - { - if (args.Any(i => i == "--debugger")) - { - Debugger.Launch(); - } - - Options = new CmdLineOptions(); - Parser.Default.ParseArgumentsStrict(args, Options); - - Logging.Initialize(); - - LogManager.GetRepository().Threshold = - Options.Verbose ? Level.Info - : Options.Debug ? Level.Debug - : Level.Warn; - - if (Options.NetUserAgent != null) - { - Net.UserAgentString = Options.NetUserAgent; - } - } - private static Metadata ReadNetkan() { if (!Options.File.EndsWith(".netkan")) diff --git a/Netkan/app.config b/Netkan/app.config index 3440d24dcf..b3e81a4228 100644 --- a/Netkan/app.config +++ b/Netkan/app.config @@ -1,10 +1,10 @@  - + - - + + - + \ No newline at end of file diff --git a/Netkan/log4net.xml b/Netkan/log4net.xml new file mode 100644 index 0000000000..35ea61e87a --- /dev/null +++ b/Netkan/log4net.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Netkan/packages.config b/Netkan/packages.config deleted file mode 100644 index fc34eaf3bd..0000000000 --- a/Netkan/packages.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/Tests/Core/ModuleInstaller.cs b/Tests/Core/ModuleInstaller.cs index 3629aec6c0..7cc5e8a816 100644 --- a/Tests/Core/ModuleInstaller.cs +++ b/Tests/Core/ModuleInstaller.cs @@ -641,7 +641,7 @@ public void AllowsInstallsToShipsDirectories(string directory) var zip = ZipFile.Create(new MemoryStream()); zip.BeginUpdate(); zip.AddDirectory("ExampleShips"); - zip.Add(new ZipEntry("/ExampleShips/AwesomeShip.craft") { Size = 0, CompressedSize = 0 }); + zip.Add(new ZipEntry("ExampleShips/AwesomeShip.craft") { Size = 0, CompressedSize = 0 }); zip.CommitUpdate(); var mod = CkanModule.FromJson(string.Format(@" @@ -683,7 +683,7 @@ public void AllowInstallsToScenarios() zip.BeginUpdate(); zip.AddDirectory("saves"); zip.AddDirectory("saves/scenarios"); - zip.Add(new ZipEntry("/saves/scenarios/AwesomeRace.sfs") { Size = 0, CompressedSize = 0 }); + zip.Add(new ZipEntry("saves/scenarios/AwesomeRace.sfs") { Size = 0, CompressedSize = 0 }); zip.CommitUpdate(); var mod = CkanModule.FromJson(@" diff --git a/Tests/Tests.csproj b/Tests/Tests.csproj index 289a8b2484..b33da22136 100644 --- a/Tests/Tests.csproj +++ b/Tests/Tests.csproj @@ -1,65 +1,52 @@  + + {4F41255E-8BC1-465B-82D5-1C5665BC099A} + Library + Tests CKAN.Tests - ..\_build\out\$(AssemblyName)\obj\ + false + true + true + true + ..\_build\out\$(AssemblyName)\$(Configuration)\bin\ + ..\_build\out\$(AssemblyName)\$(Configuration)\obj\ + Debug;Release;Debug_NetCore;Release_NetCore - - - - netcoreapp3.1 + netcoreapp3.1 - net45 + net45 - - - {4F41255E-8BC1-465B-82D5-1C5665BC099A} - Tests - ..\_build\out\$(AssemblyName)\$(Configuration)\bin\ - false - - $(DefaultItemExcludes);NetKAN\**;GUI\** - true portable + false + 7 - true + 7 - - - - Properties\GlobalAssemblyVersionInfo.cs - - - Properties\GlobalAssemblyInfo.cs - - - - - + + - + - - - + - ..\lib\curlsharp-v0.5.1-2-gd2d5699\CurlSharp.dll @@ -71,16 +58,21 @@ - + - - + + + Properties\GlobalAssemblyVersionInfo.cs + + + Properties\GlobalAssemblyInfo.cs + + - @@ -89,11 +81,14 @@ - + + + PreserveNewest + + - - + \ No newline at end of file diff --git a/Tests/log4net.xml b/Tests/log4net.xml new file mode 100644 index 0000000000..0f72ef438e --- /dev/null +++ b/Tests/log4net.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build b/build index 23570c53bb..5d7ade48cf 100755 --- a/build +++ b/build @@ -19,7 +19,7 @@ if [ $# -gt 1 ]; then done fi -nugetVersion="5.4.0" +nugetVersion="5.6.0" useExperimental=false rootDir=$(dirname $0) scriptFile="$rootDir/build.cake" diff --git a/build.cake b/build.cake index 88b1098e61..063b677643 100644 --- a/build.cake +++ b/build.cake @@ -1,15 +1,18 @@ #addin "nuget:?package=Cake.SemVer&version=4.0.0" -#addin "nuget:?package=semver&version=2.0.4" -#addin "nuget:?package=Cake.Docker&version=0.10.0" -#tool "nuget:?package=ILRepack&version=2.0.17" -#tool "nuget:?package=NUnit.ConsoleRunner&version=3.10.0" +#addin "nuget:?package=semver&version=2.0.6" +#addin "nuget:?package=Cake.Docker&version=0.11.0" +#tool "nuget:?package=ILRepack&version=2.0.18" +#tool "nuget:?package=NUnit.ConsoleRunner&version=3.11.1" using System.Text.RegularExpressions; using Semver; +var buildNetCore = "netcoreapp3.1"; +var buildNetFramework = "net45"; + var target = Argument("target", "Default"); var configuration = Argument("configuration", "Debug"); -var buildFramework = configuration.EndsWith("NetCore") ? "netcoreapp3.1" : "net45"; +var buildFramework = configuration.EndsWith("NetCore") ? buildNetCore : buildNetFramework; var solution = Argument("solution", "CKAN.sln"); var rootDirectory = Context.Environment.WorkingDirectory; @@ -142,7 +145,7 @@ private void MakeIn(string dir, string args = null) Task("Restore-Nuget") .Description("Intermediate - Download dependencies with NuGet when building for .NET Framework.") - .WithCriteria(() => buildFramework == "net45") + .WithCriteria(() => buildFramework == buildNetFramework) .Does(() => { NuGetRestore(solution, new NuGetRestoreSettings @@ -156,7 +159,7 @@ Task("Build-DotNet") .Description("Intermediate - Call MSBuild/XBuild to build the CKAN.sln.") .IsDependentOn("Restore-Nuget") .IsDependentOn("Generate-GlobalAssemblyVersionInfo") - .WithCriteria(() => buildFramework == "net45") + .WithCriteria(() => buildFramework == buildNetFramework) .Does(() => { MSBuild(solution, settings => @@ -167,7 +170,7 @@ Task("Build-DotNet") Task("Restore-DotNetCore") .Description("Intermediate - Download dependencies with NuGet when building for .NET Core.") - .WithCriteria(() => buildFramework == "netcoreapp3.1") + .WithCriteria(() => buildFramework == buildNetCore) .Does(() => { DotNetCoreRestore(solution, new DotNetCoreRestoreSettings @@ -181,7 +184,7 @@ Task("Build-DotNetCore") .Description("Intermediate - Call .NET Core's MSBuild to build the ckan.dll.") .IsDependentOn("Restore-Dotnetcore") .IsDependentOn("Generate-GlobalAssemblyVersionInfo") - .WithCriteria(() => buildFramework == "netcoreapp3.1") + .WithCriteria(() => buildFramework == buildNetCore) .Does(() => { DotNetCoreBuild(solution, new DotNetCoreBuildSettings @@ -213,7 +216,7 @@ Task("Generate-GlobalAssemblyVersionInfo") Task("Repack-Ckan") .Description("Intermediate - Merge all the separate DLLs and EXEs to a single executable.") - .WithCriteria(() => buildFramework == "net45") + .WithCriteria(() => buildFramework == buildNetFramework) .IsDependentOn("Build-DotNet") .Does(() => { @@ -239,7 +242,7 @@ Task("Repack-Ckan") Task("Repack-Netkan") .Description("Intermediate - Merge all the separate DLLs and EXEs to a single executable.") - .WithCriteria(() => buildFramework == "net45") + .WithCriteria(() => buildFramework == buildNetFramework) .IsDependentOn("Build-DotNet") .Does(() => { @@ -269,7 +272,7 @@ Task("Test+Only") Task("Test-UnitTests+Only") .Description("Intermediate - Only run CKANs unit tests, without compiling beforehand.") .IsDependentOn("Test-UnitTests+Only-DotNetCore") - .WithCriteria(() => buildFramework == "net45") + .WithCriteria(() => buildFramework == buildNetFramework) .Does(() => { var where = Argument("where", null); @@ -296,7 +299,7 @@ Task("Test-UnitTests+Only") Task("Test-UnitTests+Only-DotNetCore") .Description("Intermediate - Only run CKANs unit tests using DotNetCoreTest, without compiling beforehand.") - .WithCriteria(() => buildFramework == "netcoreapp3.1") + .WithCriteria(() => buildFramework == buildNetCore) .Does(() => { var where = Argument("where", null); @@ -320,7 +323,7 @@ Task("Test-Executables+Only") Task("Test-CkanExecutable+Only") .Description("Intermediate - Only test the ckan.exe, without compiling beforhand.") - .WithCriteria(() => buildFramework == "net45") + .WithCriteria(() => buildFramework == buildNetFramework) .Does(() => { if (RunExecutable(ckanFile, "version").FirstOrDefault() != string.Format("v{0}", GetVersion())) @@ -329,7 +332,7 @@ Task("Test-CkanExecutable+Only") Task("Test-NetkanExecutable+Only") .Description("Intermediate - Only test the netkan.exe, without compiling beforhand.") - .WithCriteria(() => buildFramework == "net45") + .WithCriteria(() => buildFramework == buildNetFramework) .Does(() => { if (RunExecutable(netkanFile, "--version").FirstOrDefault() != string.Format("v{0}", GetVersion())) @@ -353,7 +356,7 @@ Setup(context => Warning($"Ignoring configuration argument: '{argConfiguration}'"); configuration = "Release"; - buildFramework = "net45"; + buildFramework = buildNetFramework; } else if (string.Equals(target, "Debug", StringComparison.OrdinalIgnoreCase)) { @@ -361,7 +364,7 @@ Setup(context => Warning($"Ignoring configuration argument: '{argConfiguration}'"); configuration = "Debug"; - buildFramework = "net45"; + buildFramework = buildNetFramework; } else if (string.Equals(target, "DLL", StringComparison.OrdinalIgnoreCase)) { @@ -370,7 +373,7 @@ Setup(context => else if (argConfiguration.StartsWith("Release")) configuration = "Release_NetCore"; - buildFramework = "netcoreapp3.1"; + buildFramework = buildNetCore; } }); diff --git a/build.ps1 b/build.ps1 index a80094bb65..7f8656d2e0 100644 --- a/build.ps1 +++ b/build.ps1 @@ -17,7 +17,7 @@ if (($PSVersionTable.PSVersion -lt $minPSVer)) { } # Globals -$NugetVersion = "5.3.1" +$NugetVersion = "5.6.0" $UseExperimental = $false $RootDir = "${PSScriptRoot}" $ScriptFile = "${RootDir}/build.cake" diff --git a/packages.config b/packages.config index e6cd1dbbfe..f6bd5a3886 100644 --- a/packages.config +++ b/packages.config @@ -1,4 +1,4 @@ - +