MSBuild: unnecessary rebuilds because of generated AssemblyAttributes.cs
A surprisingly common cause for unnecessary rebuilds of C# MSBuild projects is an unfortunate design in a part of MSBuild tooling that deals with generating AssemblyAttributes.cs. See for example this...
View ArticleWhy is Environment.CurrentDirectory bad?
It is bad in general for various reasons, but it’s especially bad in build tools and related space (like CI servers and such).MSBuild could have had fine-grained parallelism where it could execute...
View ArticleAn open-source full-fidelity XML parser
A while back I needed to understand XML at a low-level, including whitespace, line breaks and comments. While XLinq is a fantastic and powerful library, it does lack a few things, for instance I...
View ArticleLive Writer is open source!
All blog posts in this blog have been posted using Live Writer, a great blogging tool we’ve had for years. However it stopped evolving in recent years and I almost lost hope… but!I’m now posting this...
View ArticleContentSync – a content-based file copy tool
Suppose you need to sync the contents of two large folders, Source and Destination. Normally robocopy *.* Source Destination /MIR does the job. However even if the byte content of a file didn’t change,...
View ArticleEnableVSIPLogging to show VS command info
Found an interesting trick here:http://blogs.msdn.com/b/dr._ex/archive/2007/04/17/using-enablevsiplogging-to-identify-menus-and-commands-with-vs-2005-sp1.aspxRun this .reg file:Windows Registry Editor...
View ArticleAdded ContentSync command line arguments
I’ve added various command line arguments to the tool I blogged about the last time. The new release is here:https://github.com/KirillOsenkov/ContentSync/releases/tag/v1.1Now you can customize what...
View ArticleMSBuildDumper
I published a tool to print out the evaluated values of properties and items in an MSBuild project: https://github.com/kirillosenkov/msbuildtools It is available on Chocolatey: cinst MSBuildDumper...
View ArticleUsing a common intermediate and output directory for your solution
By default each project in a VS solution has its output directory set to bin and its intermediate output directory to obj subdirectories of each project directory. If you’re using version control, you...
View ArticleHow to have a Project Reference without referencing the actual binary
Sometimes you want a project reference from project B to project A to indicate a build-time dependency, but you don’t actually want assembly B to reference assembly A (maybe because it’s a runtime-only...
View ArticleMSBuild: unnecessary rebuilds because of generated AssemblyAttributes.cs
A surprisingly common cause for unnecessary rebuilds of C# MSBuild projects is an unfortunate design in a part of MSBuild tooling that deals with generating AssemblyAttributes.cs. See for example this...
View ArticleWhy is Environment.CurrentDirectory bad?
It is bad in general for various reasons, but it’s especially bad in build tools and related space (like CI servers and such). MSBuild could have had fine-grained parallelism where it could execute...
View ArticleAn open-source full-fidelity XML parser
A while back I needed to understand XML at a low-level, including whitespace, line breaks and comments. While XLinq is a fantastic and powerful library, it does lack a few things, for instance I...
View ArticleLive Writer is open source!
All blog posts in this blog have been posted using Live Writer, a great blogging tool we’ve had for years. However it stopped evolving in recent years and I almost lost hope… but! I’m now posting this...
View ArticleContentSync – a content-based file copy tool
Suppose you need to sync the contents of two large folders, Source and Destination. Normally robocopy *.* Source Destination /MIR does the job. However even if the byte content of a file didn’t change,...
View ArticleEnableVSIPLogging to show VS command info
Found an interesting trick here: http://blogs.msdn.com/b/dr._ex/archive/2007/04/17/using-enablevsiplogging-to-identify-menus-and-commands-with-vs-2005-sp1.aspx Run this .reg file: Windows Registry...
View ArticleAdded ContentSync command line arguments
I’ve added various command line arguments to the tool I blogged about the last time. The new release is here: https://github.com/KirillOsenkov/ContentSync/releases/tag/v1.1 Now you can customize what...
View ArticleWhere to Download WPF Performance Suite? (Perforator, Visual Profiler)
I was having trouble finding the WPF performance tools mentioned in this blog: https://blogs.msdn.microsoft.com/jgoldb/2008/09/26/updated-wpfperf-performance-profiling-tools-for-wpf/ I had to ask...
View ArticleAnnouncing MSBuild Structured Log: record and visualize your builds
I’ve just published a new tool: https://github.com/KirillOsenkov/MSBuildStructuredLog It is an MSBuild logger that can be passed to MSBuild during a build and it records information about everything...
View ArticleKirill’s Blog
Microsoft is making some changes to this blogging platform and I decided it's time to move this blog to my own website that I fully control. It will probably take time for me to re-establish my blog...
View Article