From 7c989a0eb4657b5d6b067dfb5588719f4e50c436 Mon Sep 17 00:00:00 2001 From: mikx Date: Tue, 31 Oct 2023 16:09:39 -0400 Subject: [PATCH] first commit --- .gitignore | 364 +++++++++++++++++++++++++++ LICENSE | 208 +++++++++++++++ README.md | 2 + mxvalheim.sln | 25 ++ mxvalheim/App.config | 6 + mxvalheim/FodyWeavers.xml | 3 + mxvalheim/Program.cs | 97 +++++++ mxvalheim/Properties/AssemblyInfo.cs | 36 +++ mxvalheim/favicon.ico | Bin 0 -> 370070 bytes mxvalheim/mxvalheim.csproj | 212 ++++++++++++++++ mxvalheim/packages.config | 53 ++++ 11 files changed, 1006 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 mxvalheim.sln create mode 100644 mxvalheim/App.config create mode 100644 mxvalheim/FodyWeavers.xml create mode 100644 mxvalheim/Program.cs create mode 100644 mxvalheim/Properties/AssemblyInfo.cs create mode 100644 mxvalheim/favicon.ico create mode 100644 mxvalheim/mxvalheim.csproj create mode 100644 mxvalheim/packages.config diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c73a921 --- /dev/null +++ b/.gitignore @@ -0,0 +1,364 @@ +# ---> VisualStudio +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4ed90b9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,208 @@ +Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, +AND DISTRIBUTION + + 1. Definitions. + + + +"License" shall mean the terms and conditions for use, reproduction, and distribution +as defined by Sections 1 through 9 of this document. + + + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + + + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct +or indirect, to cause the direction or management of such entity, whether +by contract or otherwise, or (ii) ownership of fifty percent (50%) or more +of the outstanding shares, or (iii) beneficial ownership of such entity. + + + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions +granted by this License. + + + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + + + +"Object" form shall mean any form resulting from mechanical transformation +or translation of a Source form, including but not limited to compiled object +code, generated documentation, and conversions to other media types. + + + +"Work" shall mean the work of authorship, whether in Source or Object form, +made available under the License, as indicated by a copyright notice that +is included in or attached to the work (an example is provided in the Appendix +below). + + + +"Derivative Works" shall mean any work, whether in Source or Object form, +that is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative +Works shall not include works that remain separable from, or merely link (or +bind by name) to the interfaces of, the Work and Derivative Works thereof. + + + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative +Works thereof, that is intentionally submitted to Licensor for inclusion in +the Work by the copyright owner or by an individual or Legal Entity authorized +to submit on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication +sent to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor +for the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + + + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently incorporated +within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable copyright license to reproduce, prepare +Derivative Works of, publicly display, publicly perform, sublicense, and distribute +the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, +each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) patent +license to make, have made, use, offer to sell, sell, import, and otherwise +transfer the Work, where such license applies only to those patent claims +licensable by such Contributor that are necessarily infringed by their Contribution(s) +alone or by combination of their Contribution(s) with the Work to which such +Contribution(s) was submitted. If You institute patent litigation against +any entity (including a cross-claim or counterclaim in a lawsuit) alleging +that the Work or a Contribution incorporated within the Work constitutes direct +or contributory patent infringement, then any patent licenses granted to You +under this License for that Work shall terminate as of the date such litigation +is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or +Derivative Works thereof in any medium, with or without modifications, and +in Source or Object form, provided that You meet the following conditions: + +(a) You must give any other recipients of the Work or Derivative Works a copy +of this License; and + +(b) You must cause any modified files to carry prominent notices stating that +You changed the files; and + +(c) You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source +form of the Work, excluding those notices that do not pertain to any part +of the Derivative Works; and + +(d) If the Work includes a "NOTICE" text file as part of its distribution, +then any Derivative Works that You distribute must include a readable copy +of the attribution notices contained within such NOTICE file, excluding those +notices that do not pertain to any part of the Derivative Works, in at least +one of the following places: within a NOTICE text file distributed as part +of the Derivative Works; within the Source form or documentation, if provided +along with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works +that You distribute, alongside or as an addendum to the NOTICE text from the +Work, provided that such additional attribution notices cannot be construed +as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, +or distribution of Your modifications, or for any such Derivative Works as +a whole, provided Your use, reproduction, and distribution of the Work otherwise +complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any +Contribution intentionally submitted for inclusion in the Work by You to the +Licensor shall be under the terms and conditions of this License, without +any additional terms or conditions. Notwithstanding the above, nothing herein +shall supersede or modify the terms of any separate license agreement you +may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, +trademarks, service marks, or product names of the Licensor, except as required +for reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to +in writing, Licensor provides the Work (and each Contributor provides its +Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied, including, without limitation, any warranties +or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR +A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness +of using or redistributing the Work and assume any risks associated with Your +exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether +in tort (including negligence), contract, or otherwise, unless required by +applicable law (such as deliberate and grossly negligent acts) or agreed to +in writing, shall any Contributor be liable to You for damages, including +any direct, indirect, special, incidental, or consequential damages of any +character arising as a result of this License or out of the use or inability +to use the Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all other commercial +damages or losses), even if such Contributor has been advised of the possibility +of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work +or Derivative Works thereof, You may choose to offer, and charge a fee for, +acceptance of support, warranty, indemnity, or other liability obligations +and/or rights consistent with this License. However, in accepting such obligations, +You may act only on Your own behalf and on Your sole responsibility, not on +behalf of any other Contributor, and only if You agree to indemnify, defend, +and hold each Contributor harmless for any liability incurred by, or claims +asserted against, such Contributor by reason of your accepting any such warranty +or additional liability. END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own identifying +information. (Don't include the brackets!) The text should be enclosed in +the appropriate comment syntax for the file format. We also recommend that +a file or class name and description of purpose be included on the same "printed +page" as the copyright notice for easier identification within third-party +archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); + +you may not use this file except in compliance with the License. + +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software + +distributed under the License is distributed on an "AS IS" BASIS, + +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +See the License for the specific language governing permissions and + +limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..9bbe85a --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# mxvalheim + diff --git a/mxvalheim.sln b/mxvalheim.sln new file mode 100644 index 0000000..6d6fe3d --- /dev/null +++ b/mxvalheim.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30907.101 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mxvalheim", "mxvalheim\mxvalheim.csproj", "{82732928-F692-4C70-8456-7D49E1EFD5AC}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {82732928-F692-4C70-8456-7D49E1EFD5AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {82732928-F692-4C70-8456-7D49E1EFD5AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {82732928-F692-4C70-8456-7D49E1EFD5AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {82732928-F692-4C70-8456-7D49E1EFD5AC}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0D3CAB3D-73FB-4CB6-B5B4-0C53CFE13A9D} + EndGlobalSection +EndGlobal diff --git a/mxvalheim/App.config b/mxvalheim/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/mxvalheim/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/mxvalheim/FodyWeavers.xml b/mxvalheim/FodyWeavers.xml new file mode 100644 index 0000000..5029e70 --- /dev/null +++ b/mxvalheim/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/mxvalheim/Program.cs b/mxvalheim/Program.cs new file mode 100644 index 0000000..55805d8 --- /dev/null +++ b/mxvalheim/Program.cs @@ -0,0 +1,97 @@ +using ICSharpCode.SharpZipLib.Core; +using ICSharpCode.SharpZipLib.Zip; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.IO.Compression; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; + +namespace mxvalheim +{ + public class Root + { + public string name { get; set; } + public string url { get; set; } + } + class Program + { + static void Main(string[] args) + { + WebClient wc = new WebClient(); + + if (!Directory.Exists(@"tmp")) { Directory.CreateDirectory("tmp"); } + + if (File.Exists(@"tmp\plugins.zip")) { File.Delete(@"tmp\plugins.zip"); } + if (File.Exists(@"tmp\config.zip")) { File.Delete(@"tmp\config.zip"); } + + wc.DownloadFile("https://io.mxg.ovh/valheim/mxval/plugins.zip", $"tmp/plugins.zip"); + wc.DownloadFile("https://io.mxg.ovh/valheim/mxval/config.zip", $"tmp/config.zip"); + + ExtractZipContent($"tmp/plugins.zip", null, $@"BepInEx"); + ExtractZipContent($"tmp/config.zip", null, $@"BepInEx"); + } + + public static void ExtractZipContent(string FileZipPath, string password, string OutputFolder) + { + ICSharpCode.SharpZipLib.Zip.ZipFile file = null; + try + { + FileStream fs = File.OpenRead(FileZipPath); + file = new ICSharpCode.SharpZipLib.Zip.ZipFile(fs); + + if (!String.IsNullOrEmpty(password)) + { + // AES encrypted entries are handled automatically + file.Password = password; + } + + foreach (ZipEntry zipEntry in file) + { + if (!zipEntry.IsFile) + { + // Ignore directories + continue; + } + + String entryFileName = zipEntry.Name; + // to remove the folder from the entry:- entryFileName = Path.GetFileName(entryFileName); + // Optionally match entrynames against a selection list here to skip as desired. + // The unpacked length is available in the zipEntry.Size property. + + // 4K is optimum + byte[] buffer = new byte[4096]; + Stream zipStream = file.GetInputStream(zipEntry); + + // Manipulate the output filename here as desired. + String fullZipToPath = Path.Combine(OutputFolder, entryFileName); + string directoryName = Path.GetDirectoryName(fullZipToPath); + + if (directoryName.Length > 0) + { + Directory.CreateDirectory(directoryName); + } + + // Unzip file in buffered chunks. This is just as fast as unpacking to a buffer the full size + // of the file, but does not waste memory. + // The "using" will close the stream even if an exception occurs. + using (FileStream streamWriter = File.Create(fullZipToPath)) + { + StreamUtils.Copy(zipStream, streamWriter, buffer); + } + } + } + finally + { + if (file != null) + { + file.IsStreamOwner = true; // Makes close also shut the underlying stream + file.Close(); // Ensure we release resources + } + } + } + } +} diff --git a/mxvalheim/Properties/AssemblyInfo.cs b/mxvalheim/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..23d0dfd --- /dev/null +++ b/mxvalheim/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 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("mxvalheim")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("mxvalheim")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[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)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("82732928-f692-4c70-8456-7d49e1efd5ac")] + +// 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")] diff --git a/mxvalheim/favicon.ico b/mxvalheim/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..079fd2c4513df90d743ba998aadf769a296a4503 GIT binary patch literal 370070 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 literal 0 HcmV?d00001 diff --git a/mxvalheim/mxvalheim.csproj b/mxvalheim/mxvalheim.csproj new file mode 100644 index 0000000..a627337 --- /dev/null +++ b/mxvalheim/mxvalheim.csproj @@ -0,0 +1,212 @@ + + + + + + Debug + AnyCPU + {82732928-F692-4C70-8456-7D49E1EFD5AC} + Exe + mxvalheim + mxvalheim + v4.7.2 + 512 + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + favicon.ico + + + + ..\packages\Costura.Fody.5.3.0\lib\netstandard1.0\Costura.dll + + + ..\packages\SharpZipLib.1.3.1\lib\net45\ICSharpCode.SharpZipLib.dll + + + ..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll + True + True + + + ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll + + + + ..\packages\System.AppContext.4.3.0\lib\net463\System.AppContext.dll + True + True + + + + ..\packages\System.Console.4.3.0\lib\net46\System.Console.dll + True + True + + + + ..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll + True + True + + + ..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll + True + True + + + ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll + True + True + + + ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll + True + True + + + + ..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll + True + True + + + ..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll + True + True + + + ..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll + True + True + + + ..\packages\System.Linq.4.3.0\lib\net463\System.Linq.dll + True + True + + + ..\packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll + True + True + + + ..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll + True + True + + + ..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll + True + True + + + + ..\packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll + True + True + + + ..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll + True + True + + + ..\packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll + True + True + + + ..\packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll + True + True + + + ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + True + True + + + ..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll + True + True + + + ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + True + True + + + ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + True + True + + + ..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + True + True + + + ..\packages\System.Text.RegularExpressions.4.3.0\lib\net463\System.Text.RegularExpressions.dll + True + True + + + + + + + + ..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll + True + True + + + + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + \ No newline at end of file diff --git a/mxvalheim/packages.config b/mxvalheim/packages.config new file mode 100644 index 0000000..7977bc8 --- /dev/null +++ b/mxvalheim/packages.config @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file