Kagamia / WzComparerR2

Maplestory online Extractor
MIT License
406 stars 132 forks source link

Migrate all csproj files to sdk style #231

Closed Kagamia closed 1 year ago

Kagamia commented 1 year ago

I'm going to upgrade project files. Please help to review and check if it breaks your build pipeline, thanks.

Note that CharasimResource is not updated yet so still we can't build it with dotnet build command, and .Net6/7 migration is not included in this PR.

@KENNYSOFT @PirateIzzy

PirateIzzy commented 11 months ago

I migrated all of my project files to SDK style. The only issue I encountered was with these 3 EffectForm files that were part of Spadow's repo beforehand. image https://github.com/PirateIzzy/WzComparerR2/tree/35cdad4453b4eb077c03ade075fdb6470e89697e/WzComparerR2.Avatar/UI

They seem to be part of the kms-MixEff branch. For now I removed them since these aren't part of your repo or @KENNYSOFT 's repo. https://github.com/jinook518/WzComparerR2/tree/kms-MixEff/WzComparerR2.Avatar/UI

PirateIzzy commented 11 months ago

So I have an update on this, when I try to export any GIF I receive this error. image (2)

For some reason it isn't giving me a stack trace in error.log so I can't determine where the issue is. I tested with your CMS build and didn't receive this issue. Not sure if it's related to the SDK migration or not.

Kagamia commented 11 months ago

@PirateIzzy please check the default namespace of WzComparerR2.Commom project, and how PngEffect shader binary is embed into dll file. In latest release I force renaming the resource name. https://github.com/Kagamia/WzComparerR2/blob/master/WzComparerR2.Common/WzComparerR2.Common.csproj#L54C4-L54C156

PirateIzzy commented 11 months ago

I will check and see if that works, going to need to update the project completely. Thank you.

By the way, should line 6 be <RootNamespace>WzComparerR2.Common</RootNamespace>? image

Kagamia commented 11 months ago

historically, all classes in WzComparerR2.Common are declared in WzComparerR2 main project, for convenience I still keep the same default namespace for any new created files.

EmbedResource names are auto generated from root namespace and file path, so better to explicily declare logicalName for it.

PirateIzzy commented 11 months ago

Makes sense. I might take a while to get back on this since I have to integrate all the differences between KENNYSOFT and my repo vs your repo. I'm thinking some time in the future, we could unify some more features between WzCR2-KMS and WzCR2-CMS.

PirateIzzy commented 11 months ago

Question, is there any reason why all of these search results are highlighted? Not sure if you encountered the same. image

Also, seems the MapRender is giving errors when I try to update, possibly due to all the code differences between yours and KENNYSOFT's. I'm thinking I might just revert the changes and just aim to fix the GIF issue for now. image

PirateIzzy commented 11 months ago

For now I have decided to just shelve all of the changes and just focus on fixing the GIF issue. Side note, did you receive these warnings when changing the version? If so, how did you fix them?

image

Kagamia commented 11 months ago

For now I have decided to just shelve all of the changes and just focus on fixing the GIF issue. Side note, did you receive these warnings when changing the version? If so, how did you fix them?

image

I see SharpDX explicitly targets .NETStandard 1.1 so I don't see the warning. For ICSharpCode.TextEditor I ignore the error anyway -> WzComparerR2.LuaConsole.csproj

Kagamia commented 11 months ago

Question, is there any reason why all of these search results are highlighted? Not sure if you encountered the same. image

Also, seems the MapRender is giving errors when I try to update, possibly due to all the code differences between yours and KENNYSOFT's. I'm thinking I might just revert the changes and just aim to fix the GIF issue for now. image

  1. Known issue, I mentioned it here.
  2. Is it caused by this commit? I updated the state machine recently.
PirateIzzy commented 11 months ago

Question, is there any reason why all of these search results are highlighted? Not sure if you encountered the same. image Also, seems the MapRender is giving errors when I try to update, possibly due to all the code differences between yours and KENNYSOFT's. I'm thinking I might just revert the changes and just aim to fix the GIF issue for now. image

  1. Known issue, I mentioned it here.
  2. Is it caused by this commit? I updated the state machine recently.

To 2, it was indeed. After reverting it, WCR2 works fine again.

PirateIzzy commented 11 months ago

I figured out the issue with the net6.0-windows build. Seems that there's something wrong with a DLL since the net6.0 build gives me this error:

image Stack Trace:

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.EntryPointNotFoundException: Unable to find an entry point named 'SetWindowTheme' in DLL 'user32'.
   at DevComponents.DotNetBar.Controls.ComboBoxEx.SetWindowTheme(IntPtr hWnd, String pszSubAppName, String pszSubIdList)
   at DevComponents.DotNetBar.Controls.ComboBoxEx.ᑧ(IntPtr ळ)
   at DevComponents.DotNetBar.Controls.ComboBoxEx.OnHandleCreated(EventArgs e)
   at System.Windows.Forms.Control.WmCreate(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ComboBox.WndProc(Message& m)
   at DevComponents.DotNetBar.Controls.ComboBoxEx.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
System.Private.CoreLib
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Private.CoreLib.dll
----------------------------------------
WzComparerR2
    Assembly Version: 2.2.0.0
    Win32 Version: 2.2.0.10725
    CodeBase: file:///C:/Izzy/WzComparerR2/WzComparerR2/bin/Release/net6.0-windows/WzComparerR2.dll
----------------------------------------
System.Runtime
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Runtime.dll
----------------------------------------
System.Windows.Forms
    Assembly Version: 6.0.2.0
    Win32 Version: 6.0.422.16407
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.WindowsDesktop.App/6.0.4/System.Windows.Forms.dll
----------------------------------------
System.Windows.Forms.Primitives
    Assembly Version: 6.0.2.0
    Win32 Version: 6.0.422.16407
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.WindowsDesktop.App/6.0.4/System.Windows.Forms.Primitives.dll
----------------------------------------
System.Threading
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Threading.dll
----------------------------------------
System.Diagnostics.TraceSource
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Diagnostics.TraceSource.dll
----------------------------------------
System.Collections
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Collections.dll
----------------------------------------
System.ComponentModel.Primitives
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.ComponentModel.Primitives.dll
----------------------------------------
System.Runtime.InteropServices
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Runtime.InteropServices.dll
----------------------------------------
System.Drawing.Primitives
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Drawing.Primitives.dll
----------------------------------------
DevComponents.DotNetBar2
    Assembly Version: 12.5.0.2
    Win32 Version: 12.5.0.2
    CodeBase: file:///C:/Izzy/WzComparerR2/WzComparerR2/bin/Release/net6.0-windows/DevComponents.DotNetBar2.dll
----------------------------------------
System.Collections.Specialized
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Collections.Specialized.dll
----------------------------------------
System.Drawing
    Assembly Version: 6.0.2.0
    Win32 Version: 6.0.422.16407
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.WindowsDesktop.App/6.0.4/System.Drawing.dll
----------------------------------------
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/mscorlib.dll
----------------------------------------
WzComparerR2.PluginBase
    Assembly Version: 2.2.0.0
    Win32 Version: 2.2.0.10725
    CodeBase: file:///C:/Izzy/WzComparerR2/WzComparerR2/bin/Release/net6.0-windows/WzComparerR2.PluginBase.dll
----------------------------------------
WzComparerR2.WzLib
    Assembly Version: 2.2.0.0
    Win32 Version: 2.2.0.10725
    CodeBase: file:///C:/Izzy/WzComparerR2/WzComparerR2/bin/Release/net6.0-windows/WzComparerR2.WzLib.dll
----------------------------------------
WzComparerR2.Common
    Assembly Version: 2.2.0.0
    Win32 Version: 2.2.0.10725
    CodeBase: file:///C:/Izzy/WzComparerR2/WzComparerR2/bin/Release/net6.0-windows/WzComparerR2.Common.dll
----------------------------------------
System.Configuration.ConfigurationManager
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.WindowsDesktop.App/6.0.4/System.Configuration.ConfigurationManager.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.dll
----------------------------------------
System.Drawing.Common
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.WindowsDesktop.App/6.0.4/System.Drawing.Common.dll
----------------------------------------
Microsoft.Win32.Primitives
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/Microsoft.Win32.Primitives.dll
----------------------------------------
System.ComponentModel.EventBasedAsync
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.ComponentModel.EventBasedAsync.dll
----------------------------------------
System.Threading.Thread
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Threading.Thread.dll
----------------------------------------
Accessibility
    Assembly Version: 4.0.0.0
    Win32 Version: 6.0.422.16407
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.WindowsDesktop.App/6.0.4/Accessibility.dll
----------------------------------------
System.ComponentModel.TypeConverter
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.ComponentModel.TypeConverter.dll
----------------------------------------
MonoGame.Framework
    Assembly Version: 3.8.1.303
    Win32 Version: 3.8.1.303
    CodeBase: file:///C:/Izzy/WzComparerR2/WzComparerR2/bin/Release/net6.0-windows/MonoGame.Framework.dll
----------------------------------------
System.Collections.NonGeneric
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Collections.NonGeneric.dll
----------------------------------------
System.ObjectModel
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.ObjectModel.dll
----------------------------------------
System.Numerics.Vectors
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Numerics.Vectors.dll
----------------------------------------
Microsoft.Win32.SystemEvents
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.WindowsDesktop.App/6.0.4/Microsoft.Win32.SystemEvents.dll
----------------------------------------
System.ComponentModel
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.ComponentModel.dll
----------------------------------------
System.Memory
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Memory.dll
----------------------------------------
System.Private.Uri
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Private.Uri.dll
----------------------------------------
System.Runtime.Loader
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Runtime.Loader.dll
----------------------------------------
System.Diagnostics.StackTrace
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Diagnostics.StackTrace.dll
----------------------------------------
System.Reflection.Metadata
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Reflection.Metadata.dll
----------------------------------------
System.Collections.Immutable
    Assembly Version: 6.0.0.0
    Win32 Version: 6.0.422.16404
    CodeBase: file:///C:/Program%20Files/dotnet/shared/Microsoft.NETCore.App/6.0.4/System.Collections.Immutable.dll
----------------------------------------

************** JIT Debugging **************

I'm guessing it's something on my end.

Kagamia commented 11 months ago

@PirateIzzy Congratulations. you're following my path. I explained the error in #224, the workaround is to inject a repaired function with Harmony. See https://github.com/Kagamia/WzComparerR2/blob/master/WzComparerR2/Dotnet6Patches.cs

PirateIzzy commented 11 months ago

@Kagamia Thank you for the help. I was able to get it to work so far, will let you know if anything comes up.

PirateIzzy commented 9 months ago

Hi @Kagamia , so Hikari Calyx tested downloading a patch with .NET 6.0 but apparently it attempted to check MapleStory.exe for checksum validation. Did you encounter this before? He said your version worked fine. Doesn't seem to occur with .NET 462

image

I didn't see anything specific when I searched the two files: https://github.com/PirateIzzy/WzComparerR2/blob/master/WzComparerR2/FrmPatcher.cs https://github.com/PirateIzzy/WzComparerR2/blob/master/WzComparerR2/Patcher/WzPatcher.cs

Kagamia commented 9 months ago

@PirateIzzy I've never seen this error before nor bug reports from community. Really curious that why the new created file is broken...

Could you double check that if the new MapleStory.exe is a complete executable file(MZ file)?

HikariCalyx commented 9 months ago

@PirateIzzy I've never seen this error before nor bug reports from community. Really curious that why the new created file is broken...

Could you double check that if the new MapleStory.exe is a complete executable file(MZ file)?

I can run patched MapleStory.exe successfully, it will download 384.3 minor patch version automatically from Nexon Korea server.

Kagamia commented 9 months ago

@PirateIzzy I've never seen this error before nor bug reports from community. Really curious that why the new created file is broken... Could you double check that if the new MapleStory.exe is a complete executable file(MZ file)?

I can run patched MapleStory.exe successfully, it will download 384.3 minor patch version automatically from Nexon Korea server.

So, does it mean that crc hash algorithm returns different result between netfx and net6?

PirateIzzy commented 9 months ago

So it's specifically pointing to this line, not sure why. Your CMS build works with .NET 6.0.

https://github.com/PirateIzzy/WzComparerR2/blob/07495ba9b7107b438f7050d00a26f71f012f23b9/WzComparerR2/FrmPatcher.cs#L280 https://github.com/Kagamia/WzComparerR2/blob/master/WzComparerR2/Patcher/WzPatcher.cs#L262

For now I tested replacing my FrmPatcher.cs with yours, and it seems to work fine. It's possible that something in the old version was causing an issue with MapleStory.exe.

Kagamia commented 9 months ago

To track this bug we'd better to start a new thread (issue) with the following information:

  1. Can someone stable repro this error NOW? (to help confirm whether it is being fixed after investigation)
  2. Is the error message (especially, the actuall hashcode) consitent?
  3. Was it only occurred on specific WcR2 fork/build/edition?
  4. Did someone manually verified the hashcode of new created file with CheckSum.ComputeHash2() among different WcR2 version?
  5. etc.
PirateIzzy commented 9 months ago

I can log it in my repo's Issues list. I'll include you and Hikari in it.