c# 编译器中有一个选项可以使用 errorlog 选项获取代码分析日志, 请参阅https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/errors-warnings
如果我们只给出字符串,它可以工作,但 $(ProjectName) 或 $(AssemblyName) 不起作用,它会将其视为字符串而不是项目属性
msbuild mysolution.sln /property:ErrorLog=$(AssemblyName).sarif
上述命令生成日志文件为 $(AssemblyName).sarif 而不是 MyProject.sarif
如何正确使用 errolog 开关来获取日志文件名字符串前面的项目名称。
命令行
/property
开关不会评估属性引用的值。像 $(AssemblyName).sarif
这样的值将被视为文字。属性参考不会展开。
而是在解决方案文件夹(或包含所有项目文件夹的文件夹)中创建一个
Directory.Build.props
文件,其中包含以下内容:
<Project>
<PropertyGroup>
<ErrorLog>$(AssemblyName).sarif</ErrorLog>
</PropertyGroup>
</Project>