Skip to main content

MsBuild Package

CSharpier can be run when a project is built by installing the CSharpier.MSBuild nuget package

Install-Package CSharpier.MSBuild

By default this will

  • In Debug - on build will run csharpier in the project folder to format all files in the project.
  • In Release - on build will run csharpier --check in the project folder to validate that all files in the project have already been formatted.

Properties

Check

You can control when check is used with the following Property

  <PropertyGroup>
<CSharpier_Check>false</CSharpier_Check>
</PropertyGroup>

Bypass

You can bypass running CSharpier using the CSharpier_Bypass Property

  <PropertyGroup>
<CSharpier_Bypass>true</CSharpier_Bypass>
</PropertyGroup>
dotnet publish -c release -o /app --no-restore /p:CSharpier_Bypass=true

Log Level

You can control the value passed to --log-level with the following Property

  <PropertyGroup>
<CSharpier_LogLevel>Error</CSharpier_LogLevel>
</PropertyGroup>

Valid options are:

  • None
  • Error
  • Warning
  • Information (default)
  • Debug

Unformatted as Warnings

If you do not want to fail the build when running check and encountering unformatted files you may set the following property.

  <PropertyGroup>
<CSharpier_UnformattedAsWarnings>true</CSharpier_UnformattedAsWarnings>
</PropertyGroup>

Target Frameworks

CSharpier.MSBuild will be run with net8.0 or net9.0 if the project targets one of the three frameworks. In cases where the project targets something else (net48, netstandard2.0) CSharpier_FrameworkVersion will default to net8.0 This can be controlled with the following property. This property is required if the csproj is targeting < net8.0 (netstandard2.0, net48, etc) and net8.0 is not installed.

  <PropertyGroup>
<CSharpier_FrameworkVersion>net8.0</CSharpier_FrameworkVersion>
</PropertyGroup>