Issue for myself to remind me about areas to explore when upgrading ASF to .NET Core 3.0:
Backlog:
Code upgrades:
HttpClient use HTTP/2 by default. Needs testing.Maintenance:
Minor version should be done, Major depending on whether there will be breaking changes across updates and alike, nothing justifying it as of now.CLR_OPENSSL_VERSION_OVERRIDE=1.1 should no longer be needed.Initial:
ILLink.Tasks (should now be bundled), check enhanced trimming and publishing single executables, like this.rootDescriptor.xml, see for the new approach and whether it's still needed.rcedit should no longer be needed, eradicate it out of tools and appveyor.yml, #926.CoreCompileCache workaround in csproj should no longer be needed, https://github.com/microsoft/msbuild/issues/3350 is supposed to be solved.csproj and cc.sh, especially stuff like LinkDuringPublish or CrossGenDuringPublish. Correct dotnet publish to still use FDD and SCD and not FDE.PublishReadyToRun and determine whether to AOT-compile ASF binaries.Future (.NET Core 5.0?):
PublishReadyToRun is now available for cross-platform scenarios.Hey there, may I ask if you have any plans to add this feature anytime soon?
Consider giving single file publish another try once mono/linker#763 is resolved
If I understand correctly a fix for that issue has been added to .NET Core 3.1
Thanks
It's more complicated than that since it also bundles all of my files ASF needs to work with, such as config directory and alike. I'll need to see if there is an easy way to exclude them from bundling.
But yes, now that I merged 3.1 in, it's time to see how the list above reflects today.
Done in #1542.
Since all outstanding issues have been dealt with, we can close this task in favour of last task that is left: https://github.com/JustArchiNET/ArchiSteamFarm/issues/1543
I tried it building ASF myself in my Debian machine and it compiled with no errors. However, when I tried to open it (the linux-x64 release), I got a bunch of errors regarding missing libraries. I could have messed up something as I'm not familiar with .NET, so I'll wait for the last appveyor build to complete so I can test it properly.
Thanks a lot for implementing this!
Remember that you can always download artifacts directly from AppVeyor (or GitHub in case of releases): https://ci.appveyor.com/project/JustArchi/archisteamfarm/builds/29348255/artifacts
I tested linux-x64 and it worked fine for me.
Yup I was actually waiting for this one: https://ci.appveyor.com/project/JustArchi/archisteamfarm/builds/29348262
Anyway, I've just downloaded it. The binary size is the same of when I compiled it, so I don't think I've messed it up 馃槃
Also, the 'missing libraries' errors I was getting is related to this one plugin I have installed: https://github.com/Ryzhehvost/ASF-Achievement-Manager
I have no idea how to fix it and honestly it's fine if I just disable them for now. I know this fix shouldn't be done by you, but I'll leave my ASF's log file here just in case:
Thanks again!
I had to disable single file publishing anyway for now due to update issues on Windows boxes, I'll see if I can think of something clever upcoming days (single file forces handle on main binary and I can't do anything with it as part of the process, previously I could move it around).
Too bad... Happy to say that it's working great on Linux though! (except for the plugins part)
It is because on Linux I can move/rm anything I want to, only Windows is problematic.
@guixxx Windows awaits reasoning in https://github.com/dotnet/sdk/issues/4022
Thanks for heads up. Anyway, since I mostly use Linux and I was able to build ASF from source, I'm good for now...
Linux (and OS X) will be published as single file starting from V4.1.1.2, officially, since this isn't a blocker for it. And as an extra it's actually a good opportunity to test if my enhanced logic for HomeDirectory works properly (as ASF wasn't fully compatible with it before I added support just a few days ago).