Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What I did
I did four things (in the order of their impact on the size):
NLog.Web.AspNetCoredependency (andNLog.Schema, but that's most likely barely noticeable). As far as I can tell, it wasn't used anywhere directly, but had a pretty big contibution to the build size. Removing this dependency made the build about 25-30 MB smaller. The only part where this dependency was kind of used is inFlow.Launcher.Plugin.Program/Main.cs:Microsoft.Extensions.Caching.Memorydirectly to the Program plugin.Flow.Launcher.Plugin.BrowserBookmarkincluded all kinds of SQLite runtimes:browser-wasm,osx-arm64,linux-x64, etc. Since Flow Launcher is a Windows-only program, I don't see the point of having all the additional runtimes. I deleted all of them except ones starting withwin-. This freed up about 20 MB.Flow.Launcherproject, I removed allResources.[lang].resxfiles. There were 22 of them, and all of them had the same data: normal icon of Flow Launcher and game mode icon, but the icons were included at build step as base64-encoded strings, so each of those .resx files was adding about 150 KB to the size. Not that much, but it's nice to free that space.<SatelliteResourceLanguages>en</SatelliteResourceLanguages>in all plugin projects. This prevents dependencies likeMicrosoft.VisualStudio.Threading/Validationfrom adding their own translation files to the output of plugin builds. Users shouldn't be able to see these messages anyway, so there's no point in keeping them in the builds. Besides, Flow.Launcher itself and a few plugins already had that attribute. Again, these files were tiny, this is just a nice visual cleanup.Result
Notice that the build after these changes has much fewer files and folders, which is a plus in my book.
The testing I've done
dotnet publish Flow.Launcher/Flow.Launcher.csproj -c Release -o bin/Release-new --self-containedworks, the output launches and works normallydotnet publish "Plugins/Flow.Launcher.Plugin.$name/Flow.Launcher.Plugin.$name.csproj" -c Release -o "bin/Release-new/Plugins/Flow.Launcher.Plugin.$name"works, Flow Launcher correctly picks up built plugins and the plugins do workScreenshot of the BrowserBookmark plugin working after these changes:
