C# compiler option ErrorLog how to use project name or assmeblyname as log file name in msbuild or dotnet cli

75 Views Asked by At

There is option in c# compiler for getting code analysis log using errorlog option, refer https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/errors-warnings

if we give just string it works but $(ProjectName) or $(AssemblyName) does not work it treat it as string instead project property

msbuild mysolution.sln /property:ErrorLog=$(AssemblyName).sarif

above command generate log file as $(AssemblyName).sarif instead MyProject.sarif

How to correctly use errolog switch to get project name prepended to log file name string.

1

There are 1 best solutions below

0
Jonathan Dodds On BEST ANSWER

The command line /property switch doesn't evaluate the values for property references. A value like $(AssemblyName).sarif will be taken as a literal. The property reference will not be expanded.

Instead create a Directory.Build.props file in the solution folder (or a folder that contains all the project folders) with the following content:

<Project>
 <PropertyGroup>
   <ErrorLog>$(AssemblyName).sarif</ErrorLog>
 </PropertyGroup>
</Project>