SMAPI - Stardew Modding API

SMAPI - Stardew Modding API

971k Downloads

SMAPI can't find dll file on ubuntu 18.10

hso132 opened this issue ยท 6 comments

commented

I tried installing the mods I've been using on my windows partition onto the ubuntu 18.10 one.
When launching the game, SMAPI tells me that a DLL doesn't exist.
The problem is that the DLL does in fact exist, inside its folder. On windows it's perfectly detected, but for some reason SMAPI just skips it on linux.
I tried doing a fresh install of the mod, and I also tried copying the entire Mods folder from my windows partition.
I don't know nearly enough about C# or .NET to understand more of this error, so maybe SMAPI isn't the source of the issue.

Here's the full log, but I doubt it contains anything useful.
log.txt

commented

Can you upload your SMAPI log (see instructions on that page) and post a link here? The log file contains more info than the console window.

commented

There's always the possibility of adding an extra step of robustness; if the file cannot be found, list all files, then check them in a case-insensitive manner.
I could do that myself, but I'm not sure if it's good design.

commented

That may complicate external tools, so I think the opposite may be better: detect if the case doesn't match on Windows, show a deprecation warning in SMAPI 2.11, and refuse to load it in SMAPI 3.0. That way modders can fix the issue in new mods before release, and I can see which current mods are affected.

commented

Sorry about the delay, here's the log
Edit: I've just now noticed that SMAPI is looking for kisekae.dll, but I had Kisekae.dll (capital K). So the issue comes from the mod developper using the uncapitalised filename in the manifest, but the dll is capitalised in the downloaded folder. Linux' filesystem is case sensitive, while windows' isn't.
While the root issue comes from the mod, and not SMAPI, there's a possible workaround, but I guess it would be better to have a seperate issue for that.

commented

Yep, that's a bug in the Kisekae mod; SMAPI itself is running fine, it's just letting you know that Kisekae couldn't be loaded. I'll send the author a pull request to fix that.

commented

Done in develop for the next release. The behaviour will depend on the SMAPI version you install:

  • SMAPI 2.11 which will show a deprecation warning:

    Kisekae uses deprecated code (EntryDll value with case-insensitive capitalisation is deprecated since SMAPI 2.11).

  • SMAPI 3.0 won't load the mod and will show an error like this:

    Skipped mods [... ] Kisekae 2.1.2-unofficial.1-f4ith because its EntryDll value 'kisekae.dll' doesn't match the actual file capitalisation 'Kisekae.dll'. The capitalisation must match for crossplatform compatibility.

In my next test pass to update the compatibility list, I'll see which mods are affected and prepare pull requests for those.