AdamsLair / duality

a 2D Game Development Framework
https://adamslair.github.io/duality
MIT License
1.4k stars 291 forks source link

Fixed opentk Resolved file has a bad image warning #812

Closed Barsonax closed 4 years ago

Barsonax commented 4 years ago

Moved the openalsoft libraries to the runtimes\any\native folder in the nuget package

In the template I had to add <RuntimeIdentifier>any</RuntimeIdentifier> to the csproj so that it knows to pick up the any folder.

This solves the warning you otherwise get because it was trying to load the native dll's as a non native dll.

Solves #787

Barsonax commented 4 years ago

Seems that this library is windows only though? @ilexp do you have to use something different on linux?

ilexp commented 4 years ago

OpenALSoft is a fallback for Windows systems that do not have any OpenAL drivers installed, and they remain inactive if OpenAL comes with the used audio drivers anyway. On Linux / MacOS, Duality does not bring along a fallback, but in the same way it's possible that these systems do have OpenAL drivers present in some form themselves. It's not a strict requirement for OpenAL audio support, but it increases compatibility on Windows.

Barsonax commented 4 years ago

I was asking because I now put the dll's in the any folder. This works but if they are only intended for windows then thats not exactly correct. Would be cleaner to put them in win-x64 and win-x84 folders I think. I believe you can put in multiple RuntimeIdentifier but have to check how that will exactly behave.

ilexp commented 4 years ago

I guess in that case we're in a Windows only context anyway, since package installs are only relevant to the developer environment setup, not deployed games. So the package would currently only be installed in a Windows setup, or one that doesn't care about those files. It might not be clean, but shouldn't cause issues.

However: When the editor one day runs on non-Windows platforms, it might actually be correct to include the files there, since you could theoretically develop a game on Linux or Mac, which you plan to deploy on Windows, so the files would need to be there at least for deployment / build purposes. (Although in that case, one might argue whether they should be categorized as runtime lib?)

That's way ahead into the future though. Point is, it might not be all that wrong, depends on how you look at it. I think either way would be fine for now, reconsider as needed.

Barsonax commented 4 years ago

Hmm Ill keep it this way for now. Not really relevant atm.