My write-ups on software development

Over time, I have found that the best way for me to remember something is to put it in writing - especially when I attempt to explain the concepts to someone who's unfamiliar with them.

This "blog" contains posts that I would have appreciated to read when I started learning about such unfamiliar concepts.

It also contains other posts, like reference sheets for those commands, that I use to rarely to remember, but once in a while need.

If you do find parts that are unclear or plain wrong, please do not hesitate to contact me with a description of what could be improved.


> Git cheat sheet

This cheat sheet contains my go-to answers for Git-related stuff that I want to do in a consistent manner.


> The dangers of using the '--output' parameter with 'dotnet publish'

TL;DR: Using dotnet publish with the --output parameter on a solution publishes all projects in that solution into a single output repository - any files with conflicting names will silently overwrite each other. If any projects depend on different versions of a NuGet package and the DLLs of the NuGet package have identical file names across its versions (as Newtonsoft.Json does), dotnet publish --output outputfolder will silently choose a single version of the DLLs to put in the outputfolder. The projects depending on any other versions of the DLls will throw an exception at runtime. The solution: Publish each project individually into project-specific folders. This is not an issue on Ubuntu for reasons I have not yet uncovered

Did you ever encounter something like this?

Unhandled exception. System.IO.FileLoadException:
Could not load file or assembly 'Newtonsoft.Json, Version=, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'.
The located assembly's manifest definition does not match the assembly reference. (0x80131040)
File name: 'Newtonsoft.Json, Version=, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'