Splitwirez / Spore-Mod-Manager

MIT License
20 stars 3 forks source link

System.ArgumentException during setup in Wine/Linux #31

Open wxMichael opened 3 years ago

wxMichael commented 3 years ago

Describe the bug Setup crashes with System.ArgumentException when run in Wine via Lutris.

To Reproduce Steps to reproduce the behavior:

  1. Install Spore in Lutris
  2. Run setup exe inside Wine prefix
  3. Choose either Simple or Advanced
  4. See error

Expected behavior Installation completes without errors.

Platform (please complete the following information):

Additional context

---------------------------
Something is very wrong here. Layer 0
---------------------------
System.ArgumentException: Propagation flags need inheritance flags.
Parameter name: propagationFlags
mscorlib
  at System.Security.AccessControl.CommonAcl.GetAceFlags (System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags auditFlags) [0x00021] in <a9da539eb2f94b1a84ab84db52450d46>:0 
  at System.Security.AccessControl.CommonAcl.AddAceGetQualifiedAce (System.Security.AccessControl.AceQualifier aceQualifier, System.Security.Principal.SecurityIdentifier sid, System.Int32 accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags auditFlags) [0x00000] in <a9da539eb2f94b1a84ab84db52450d46>:0 
  at System.Security.AccessControl.CommonAcl.AddAce (System.Security.AccessControl.AceQualifier aceQualifier, System.Security.Principal.SecurityIdentifier sid, System.Int32 accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags, System.Security.AccessControl.AuditFlags auditFlags) [0x00000] in <a9da539eb2f94b1a84ab84db52450d46>:0 
  at System.Security.AccessControl.DiscretionaryAcl.AddAccess (System.Security.AccessControl.AccessControlType accessType, System.Security.Principal.SecurityIdentifier sid, System.Int32 accessMask, System.Security.AccessControl.InheritanceFlags inheritanceFlags, System.Security.AccessControl.PropagationFlags propagationFlags) [0x00007] in <a9da539eb2f94b1a84ab84db52450d46>:0 
  at System.Security.AccessControl.CommonObjectSecurity.ModifyAccess (System.Security.AccessControl.AccessControlModification modification, System.Security.AccessControl.AccessRule rule, System.Boolean& modified) [0x00068] in <a9da539eb2f94b1a84ab84db52450d46>:0 
  at System.Security.AccessControl.CommonObjectSecurity.AddAccessRule (System.Security.AccessControl.AccessRule rule) [0x00000] in <a9da539eb2f94b1a84ab84db52450d46>:0 
  at System.Security.AccessControl.FileSystemSecurity.AddAccessRule (System.Security.AccessControl.FileSystemAccessRule rule) [0x00000] in <a9da539eb2f94b1a84ab84db52450d46>:0 
  at SporeMods.Setup.Permissions.GrantAccessFile (System.String filePath) [0x00032] in <088a42caee27415688f23530004fece9>:0 
  at SporeMods.Setup.MainWindow+<>c__DisplayClass23_0.<InstallSporeModManager>b__0 () [0x0010d] in <088a42caee27415688f23530004fece9>:0 
  at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00014] in <a9da539eb2f94b1a84ab84db52450d46>:0 
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <a9da539eb2f94b1a84ab84db52450d46>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <a9da539eb2f94b1a84ab84db52450d46>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <a9da539eb2f94b1a84ab84db52450d46>:0 
  at System.Threading.ThreadHelper.ThreadStart () [0x00008] in <a9da539eb2f94b1a84ab84db52450d46>:0 

Please send the contents this MessageBox and all which follow it to rob55rod\Splitwirez, along with a description of what you were doing at the time.

Spore Mod Manager Setup will exit after the last Inner exception has been reported.
---------------------------
OK   
---------------------------
Splitwirez commented 3 years ago

Sorry for the late reply. Honestly...thiis almost looks like it may actually be a .NET Framework issue, more than anything. On that note, it happens I'm currently in the process of migrating the Spore Mod Manager to .NET Core, so we'll have to see if this still occurs once that migration is complete.

For now, though...I must say, I was not expecting anyone outside of my circle of testers to even try to use the Spore Mod Manager at this point in time. Thank you for bringing this issue to my attention...and well, good thing you did, too - I see now that I'm going to need to update the issue templates to include where Spore was bought and installed from, and possibly also what version(s) of .NET Framework/.NET Core are installed, which is...way better to know now than after the public beta officially starts.

I guess there's not much that can be done for now. I'll give you a shout once the .NET Core migration is complete. Thanks...and sorry for the hassle in the meantime.

Btw semi-unrelated, but...might I know you from any other circles of the Spore community, by any chance? Perhaps under a different alias? And if not, then...how did you find out about the Spore Mod Manager?

wxMichael commented 3 years ago

I'm not in any of the Spore modding circles, I just remembered Spore randomly and figured I'd reinstall it. I was playing the GOG version and I think Wine was using .NET 4.5.2. I gave this mod manager a try because I was getting a PlatformNotSupported crash installing the Spore ModAPI Launcher Kit via Wine and it was refusing to add Dark Injection on Windows, and saw it mentioned somewhere that a replacement was being worked on.

I've got a dual-boot so I hopped over to the windows side and this mod manager is working great there. I get some crashes ingame but haven't bothered tracking down the cause.

Splitwirez commented 3 years ago

I'm not in any of the Spore modding circles, I just remembered Spore randomly and figured I'd reinstall it. I was playing the GOG version and I think Wine was using .NET 4.5.2.

Noted. Welcome back, I suppose.

I gave this mod manager a try because I was getting a PlatformNotSupported crash installing the Spore ModAPI Launcher Kit via Wine and it was refusing to add Dark Injection on Windows, and saw it mentioned somewhere that a replacement was being worked on.

Well...congratulations, you beat the crowd.

tbh this repo is only public right now because the SMM receives updates via GitHub releases, which it wouldn't be able to access without authentication if the repo was private. You're fine to keep using the SMM if you so desire (albeit at your own risk), just...mind doing me a favour and keeping quiet about it just for the time being?

I've got a dual-boot so I hopped over to the windows side and this mod manager is working great there.

I am so sorry lol

I get some crashes ingame but haven't bothered tracking down the cause.

Probably just Spore being Spore tbh...the game isn't exactly known for its stability. Wouldn't surprise me if it's actually some kind of disguised eldritch abomination, given how unpredictable it is.

...as for the Lutris/WINE issue at hand...I'll give you a shout once the .NET Core migration is complete, and we'll be able to try to sort that out then, okay?

Splitwirez commented 3 years ago

@wxMichael Good news: the first .NET Core test build is up, so I guess it's time to see how that fares under Lutris-WINE.

I should warn you, though...the update delivery situation is a bit...shaky right now, so if you run into any trouble with that (especially likely now or over the next couple of builds to come), do let me know and we'll see about getting you sorted out. That much goes for on Windows as well...might want to switch update delivery to "ask first" in the SMM settings while you still can. I'm hoping to add some safeguards to prevent update-loops before launch, but that's not in place yet, so uh...you've been warned, I suppose.