Skip to content

Instantly share code, notes, and snippets.

Avatar

Martin Andreas Ullrich dasMulli

  • Tieto Austria
  • Vienna, Austria
View GitHub Profile
@dasMulli
dasMulli / DemoSetup.wixproj
Last active Mar 12, 2021
Demo wix project to publish a self-contained .NET Core app
View DemoSetup.wixproj
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>3.10</ProductVersion>
<ProjectGuid>91e4dc15-312a-4e90-bc1c-01de5dc99447</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>CoreConsoleAppSetup</OutputName>
<OutputType>Package</OutputType>
@dasMulli
dasMulli / NSObject+MethodBlockReplacement.Tests.m
Last active Apr 7, 2018
Method replacement - dynamic subclassing in objective c
View NSObject+MethodBlockReplacement.Tests.m
//
// InterceptionTests.m
//
// Created by Martin Ullrich on 19.07.13.
// Copyright (c) 2013 CSS Computer-Systems-Support GmbH. All rights reserved.
//
#import "InterceptionTests.h"
#import <RootKit/RootKit.h>
#import <objc/message.h>
@dasMulli
dasMulli / GitVersionedProject.csproj
Last active Mar 6, 2017
Demo of using Git branch with mapping + commit count to set version properties in csproj
View GitVersionedProject.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<GitBranchToReleaseLabelMapping Include="master" ReleaseLabel="rtm" />
<GitBranchToReleaseLabelMapping Include="develop" ReleaseLabel="beta" />
@dasMulli
dasMulli / build.proj
Created Mar 14, 2017
Sample CI build definition using MSBuild
View build.proj
<Project>
<ItemGroup>
<Solution Include="*.sln" />
<PublishProject Include="XXX.Mvc\XXX.Mvc.csproj" />
<TestProject Include="**\*.Test*.*proj" Exclude="XXX.Tests.Shared\XXX.Tests.Shared.csproj" />
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(Solution)" Targets="Restore" ContinueOnError="ErrorAndStop" UnloadProjectsOnCompletion="true" UseResultsCache="false" />
<MSBuild Projects="@(PublishProject)" Targets="Publish" Properties="Configuration=Release" ContinueOnError="ErrorAndContinue" />
@dasMulli
dasMulli / ci-publish.proj.xml
Last active Apr 19, 2017
Publish (multiple) classic web application projects in multiple configurations to an output folder
View ci-publish.proj.xml
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- CONFIGURE the configurations to publish for here -->
<PropertyGroup>
<ConfigurationsToPublish>Release;CD;UAT;Customer1;Customer2</ConfigurationsToPublish>
</PropertyGroup>
<!-- CONFIGURE the web projects to publish here. -->
<ItemGroup>
@dasMulli
dasMulli / TFSAggregatorPolicies.xml
Created Mar 24, 2017
Auto-activates and resolves work items when child work items change
View TFSAggregatorPolicies.xml
<rule name="AutoActivate" appliesTo="Task,User Story,Feature,Bug">
<![CDATA[
if((string)self["System.State"] == "Active")
{
string currentParentState = null;
var requirementTypeNames = new[] { "User Story", "Feature", "Epic" };
if(self.HasParent() && (currentParentState = (string)self.Parent["System.State"]) != "Active")
{
string reason;
if (requirementTypeNames.Contains(self.Parent.TypeName))
@dasMulli
dasMulli / msbuild.sh
Last active May 9, 2017
Invokes msbuild with .net core sdk path on mac and linux. Copied with some edits from omnisharp-roslyn
View msbuild.sh
#!/usr/bin/env bash
DOTNET_CLI_PATH="$(dirname $(which dotnet))/sdk/$(dotnet --version)"
export MSBuildExtensionsPath="$DOTNET_CLI_PATH/"
export CscToolExe="$DOTNET_CLI_PATH/Roslyn/RunCsc.sh"
export MSBuildSDKsPath="$DOTNET_CLI_PATH/Sdks"
msbuild /nologo /v:minimal "$@"
@dasMulli
dasMulli / build-with-docker.sh
Last active Aug 7, 2017
Sample asp.net core / .net core build setup
View build-with-docker.sh
#!/bin/bash
SOURCE="${BASH_SOURCE[0]}"
SRC_DIR="$(cd -P "$(dirname "$SOURCE")"&&pwd)"
WORKDIR="/usr/src"
IMAGENAME="microsoft/aspnetcore-build"
COMMAND="./build.sh"
docker pull "$IMAGENAME"
docker run --rm -w "$WORKDIR" -v "$SRC_DIR":"$WORKDIR" -- "$IMAGENAME" $COMMAND
@dasMulli
dasMulli / Directory.Build.targets
Last active Feb 27, 2020
Add Git commit count to version
View Directory.Build.targets
<Project>
<PropertyGroup>
<GenerateNuspecDependsOn>AddGitCommitCountToVersion;$(GenerateNuspecDependsOn)</GenerateNuspecDependsOn>
<!-- this is only used in NuGet 4.6.0 -->
<GetPackageVersionDependsOn>AddGitCommitCountToVersion;$(GetPackageVersionDependsOn)</GetPackageVersionDependsOn>
</PropertyGroup>
<Target Name="AddGitCommitCountToVersion"
BeforeTargets="PrepareForBuild;_GenerateRestoreProjectSpec"
Condition=" '$(DisableGitVersionSuffix)' != 'true' ">
@dasMulli
dasMulli / Directory.Build.targets
Last active Sep 2, 2018
PublishAll target to publish for all frameworks and runtimes
View Directory.Build.targets
<Project>
<Target Name="PublishProjectIfFrameworkSet"
DependsOnTargets="Publish"
Condition=" '$(TargetFramework)' != '' " />
<Target Name="PublishProjectForAllRIDsIfTargetFrameworkSet" Condition=" '$(TargetFramework)' != '' and '$(RuntimeIdentifiers)' != '' and '$(RuntimeIdentifier)' == '' ">
<ItemGroup>
<_PublishRuntimeIdentifier Include="$(RuntimeIdentifiers)" />
</ItemGroup>
<MSBuild Projects="$(MSBuildProjectFile)" Targets="PublishAll" Properties="TargetFramework=$(TargetFramework);RuntimeIdentifier=%(_PublishRuntimeIdentifier.Identity)" />