With the “old” project files, i.e. non-SDK projects, you could reference an assembly and it would automatically be looked up in the GAC (Global Assembly Cache). For SDK projects this was a deliberate breaking change with the reasoning, that the GAC is supposed to be used for runtime resolution and not build-time resolution. This also […]
Category: Engineering
“Cross-Compilation” with GitHub Actions
In the not so distant past continuous integration (CI) hadn’t been a thing. Today, when you look into the open source world, GitHub Actions or similar offerings are ubiquitously used and that with good reason, one of which being that it’s free. GitHub Actions offer a good selection of OS images out-of-the-box, but sometimes you […]
Prevent MSBuild Execution While Loading a C# Project
MSBuild is a XML-based build system “scripting language” and is the basis of all C# project files, which means, that for an IDE (e.g. Visual Studio or JetBrains Rider) to “understand” your C# project structure, build options, and properties, it has to parse and process all the *.csproj, *.targets, and *.props XML files. The build […]
Analyze Build Time with MSBuild Log Viewer
Once your Visual Studio solution starts growing, it often ends up integrating some maybe less than standard ways to do something. For example you introduce some custom MSBuild steps, output multiple projects to the same directory, or have things like WiX projects in your solution. Understanding what is actually going on when you build the […]
PATH Handling in GitHub Actions
While playing around with getting a specific version of MinGW to run within a GitHub Actions, I had to add the MinGW’s bin/ directory to the PATH environment variable. This isn’t as straight forward as it would be in a batch or PowerShell script, because each GitHub Actions step is executed in an isolated fashion, […]
Diagnosing VSTest Crashes
The other week I got to spend a few hours trying to figure out, why some of our tests would silently crash the VSTest test host with no error message, log statement, and no Windows event log entry. All I got was: The active test run was aborted. Reason: Test host process crashed This then […]
More Than the Bare Minimum
The internet has a lot advice on how to be a “10x engineer” meaning, how to be the most efficient (ten times more efficient!) and effective (ten times more effective!) developer (in the world!). In reality, it seems to me, that the bar for being an effective engineer is actually set quite low. I don’t […]
Material for MkDocs GitHub Sponsor Journey
In the previous posts, I’ve written about MkDocs and Material for MkDocs (Static Site Generation from Markdown with MkDocs & Publishing a Static Site to Cloudflare Pages), but only realized the other week, that this also aligns pretty well with my other post on funding of open source projects (FOSS and Funding), because Martin Donath, […]
.NET Day Switzerland 2023
Time flies and so we’re approaching already the two months mark since the .NET Day Switzerland 2023 back at the end of August. Like last year I got to attend the one-day conference hosted in a cinema here in Zürich. While I’m not good at networking, I still enjoyed the in-between talks parts, as it […]
FOSS & Funding
Having joined the SFML community somewhen in 2010/2011, became part of the SFML Team (i.e. a maintainer) in 2014, and just recently been appointed to BDFL this year, I do feel like having some insights of what it takes to run a FOSS project, even if our scale is still relatively small. From this point […]