SIL.BuildTasks 2.6.0-beta0024

The ID prefix of this package has been reserved for one of the owners of this package by Prefix Reserved
This is a prerelease version of SIL.BuildTasks.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package SIL.BuildTasks --version 2.6.0-beta0024
NuGet\Install-Package SIL.BuildTasks -Version 2.6.0-beta0024
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SIL.BuildTasks" Version="2.6.0-beta0024" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SIL.BuildTasks --version 2.6.0-beta0024
#r "nuget: SIL.BuildTasks, 2.6.0-beta0024"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install SIL.BuildTasks as a Cake Addin
#addin nuget:?package=SIL.BuildTasks&version=2.6.0-beta0024&prerelease

// Install SIL.BuildTasks as a Cake Tool
#tool nuget:?package=SIL.BuildTasks&version=2.6.0-beta0024&prerelease

SIL.BuildTasks package

SIL.BuildTasks defines several msbuild tasks used in building our other projects.

Tasks in the SIL.BuildTasks nuget package:

Archive task



CpuArchitecture task

Returns the CPU architecture of the current system (x64/x86 on Windows, X86_64/i386 on Linux).


  • Value (output parameter)


<UsingTask TaskName="CpuArchitecture" AssemblyFile="SIL.BuildTasks.dll" />

<Target Name="Test">
		<Output TaskParameter="Value" PropertyName="arch" />

DownloadFile task

Downloads a file from a web address. Params specify the web address, the local path for the file, and optionally a user and password. The user/password feature has not been tested. If using an important password, make sure the address is https, since I think otherwise the password may be sent in clear.


  • Address: HTTP address to download from (required)

  • LocalFilename: Local file to which the downloaded file will be saved (required)

  • Username: Username credential for HTTP authentication

  • Password: Password credential for HTTP authentication


<UsingTask TaskName="DownloadFile" AssemblyFile="SIL.BuildTasks.dll" />

<Target Name="Test">
		LocalFilename="answer.html" />

FileUpdate task



MakePot task



MakeWixForDirTree task



NormalizeLocales task


  • L10nsDirectory: The directory whose subdirectories are locale names and contain localization files

NUnit task

Runs NUnit (v2) on a test assembly.


  • Timeout: The maximum amount of time the test is allowed to execute, expressed in milliseconds. The default is essentially no time-out

  • FudgeFactor: Factor the timeout will be multiplied by

  • Verbose: If true print the output of NUnit immediately, otherwise print it after NUnit finishes

  • FailedSuites: The names of failed test suites (output parameter)

  • AbandondedSuites: The names of test suites that got a timeout or that crashed (output parameter)

  • Assemblies: The full path to the NUnit assemblies (test DLLs). [Required]

  • IncludeCategory: The categories to include. Multiple values are separated by a comma (,)

  • ExcludeCategory: The categories to exclude. Multiple values are separated by a comma (,)

  • Fixture: The test fixture

  • XsltTransformFile: The XSLT transform file

  • OutputXmlFile: The output XML file

  • ErrorOutputFile: The file to receive test error details

  • WorkingDirectory: The working directory

  • DisableShadowCopy: Determines whether assemblies are copied to a shadow folder during testing

  • ProjectConfiguration: The project configuration to run

  • FailTaskIfAnyTestsFail: Whether or not to fail the build if any tests fail

  • TestInNewThread: Allows tests to be run in a new thread, allowing you to take advantage of ApartmentState and ThreadPriority settings in the config file

  • Force32Bit: Determines whether the tests are run in a 32bit process on a 64bit OS

  • Framework: Determines the framework to run against

  • ToolPath: Gets or sets the path to the NUnit executable assembly

  • Apartment: Apartment for running tests: MTA (Default), STA


<UsingTask TaskName="NUnit" AssemblyFile="SIL.BuildTasks.dll" />

<Target Name="Test">
		<TestAssemblies Include="$(OutputDir)/*.Tests.dll"/>

	<NUnit Assemblies="@(TestAssemblies)"

NUnit3 task

Runs NUnit3 on a test assembly.


See properties for NUnit task. The following additional properties are defined:

  • NoColor: Determines the use of colors in the output

  • UseNUnit3Xml: Whether to use the NUnit3 or NUnit2 XML format

  • TeamCity: Should be set to true if the tests are running on a TeamCity server. Adds --teamcity when calling nunit which "Turns on use of TeamCity service messages."

  • Agent: The number of NUnit agents to use when running the tests

  • Workers: Specify the NUMBER of worker threads to be used in running tests

  • Process: PROCESS isolation for test assemblies. Values: Single, Separate, Multiple

  • DisposeRunners: When true Dispose each test runner after it has finished running its tests

  • Debug: Causes NUnit to break into the debugger immediately before it executes your tests

  • Test: Comma-separated list of FULLNAMES of tests to run or explore. This option may be repeated

  • Trace: Set internal trace LEVEL. Values: Off, Error, Warning, Info, Verbose (Debug)


See NUnit task.

Split task



StampAssemblies task



UnixName task

Determines the Unix Name of the operating system executing the build.

This is useful when determining Mac vs Linux during a build. On Mac, the output Value will be "Darwin". On Linux, the output Value will be "Linux".


  • Value (output parameter)


This can be used to set DefineConstants during the PreBuild Target. Here is an example build/platform.targets file that can be included in a CSPROJ file. SYSTEM_MAC or SYSTEM_LINUX will be defined and can be used in the C# code for #if conditional compilation.

<Project xmlns="">
  <UsingTask TaskName="UnixName" AssemblyFile="SIL.BuildTasks.dll" />
  <Target Name="BeforeBuild">
      <Output TaskParameter="Value" PropertyName="UNIX_NAME" />
      <DefineConstants Condition="'$(OS)' == 'Unix'">$(DefineConstants);SYSTEM_UNIX</DefineConstants>
      <DefineConstants Condition="'$(UNIX_NAME)' == 'Darwin'">$(DefineConstants);SYSTEM_MAC</DefineConstants>
      <DefineConstants Condition="'$(UNIX_NAME)' == 'Linux'">$(DefineConstants);SYSTEM_LINUX</DefineConstants>

UpdateBuildTypeFile task



Product Compatible and additional computed target framework versions.
.NET Framework net472 is compatible.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.7.2

    • No dependencies.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.6.0-beta0030 202 8/11/2023
2.6.0-beta0028 121 8/7/2023
2.6.0-beta0024 337 11/23/2022
2.6.0-beta0023 267 8/9/2022
2.6.0-beta0022 155 8/9/2022
2.6.0-beta0020 151 8/5/2022
2.6.0-beta0010 153 8/5/2022
2.6.0-beta0008 676 8/12/2021
2.6.0-beta0007 198 8/2/2021
2.6.0-beta0006 193 8/2/2021
2.5.1-beta0005 264 5/27/2021
2.5.1-beta0004 254 5/27/2021
2.5.1-beta0003 230 5/18/2021
2.5.1-beta.2 154 3/19/2021
2.5.0 6,405 2/24/2021
2.4.0 453 1/22/2021
2.3.4 2,753 10/5/2020
2.3.3 458 7/31/2020
2.3.2 1,361 5/22/2020
2.3.1 2,555 5/19/2020
2.3.0 535 4/16/2020
2.2.0 1,641 12/11/2018
2.1.0 1,230 7/28/2018
2.0.2 847 7/2/2018
2.0.1 838 6/29/2018
2.0.0 913 6/18/2018
1.0.2 8,977 6/8/2018
1.0.1 1,032 4/20/2018
1.0.0 1,697 4/16/2018

Changes since version 2.5.0

- Additionally build for .NetStandard 2.0

- Target .NET 4.7.2 instead of 4.6.1

- Fixed logging in `MakeWixForDirTree` task (#55)

See full changelog at