C#编译器选项ErrorLog如何在msbuild或dotnet cli中使用项目名称或assmeblyname作为日志文件名

问题描述 投票:0回答:1

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 开关来获取日志文件名字符串前面的项目名称。

c# msbuild dotnet-cli compiler-options dotnet-sdk
1个回答
0
投票

命令行

/property
开关不会评估属性引用的值。像
$(AssemblyName).sarif
这样的值将被视为文字。属性参考不会展开。

而是在解决方案文件夹(或包含所有项目文件夹的文件夹)中创建一个

Directory.Build.props
文件,其中包含以下内容:

<Project>
 <PropertyGroup>
   <ErrorLog>$(AssemblyName).sarif</ErrorLog>
 </PropertyGroup>
</Project>
© www.soinside.com 2019 - 2024. All rights reserved.