MSBuild:在使用 FAKE 构建项目时,如何将警告视为错误?
MSBuild: How do i treat warnings as errors when building a project with FAKE?
我正在使用 FAKE 和 MSBuild 使用 .fsx 脚本构建项目。
使用 MSBuild 构建时,我给它几个参数:
Target "BuildProject" (fun _ ->
CleanDir ProjectDir
[ProjectPath]
|> MSBuild ProjectDir "Build" ["Configuration", "Release"; "Platform","x64"; "Verbosity", "quiet"; "TreatWarningsAsErrors", "true"]
|> ignore)
但是,当我 运行 我的脚本时,警告不会被视为错误:
Build succeeded.
1 Warning(s)
0 Error(s)
Time Elapsed 00:00:11.36
Finished Target: BuildProject
这是我的命令行输入:
Building project: MyProject/MyProject.fsproj
C:\Program Files (x86)\Microsoft Visual
Studio17\Professional\MSBuild.0\Bin\MSBuild.exe
MyProject/MyProject.fsproj /t:Build /m /nodeReuse:False /p:RestorePackages="False"
/p:OutputPath="D:\MyProjectFolder\build\MyProject" /p:Configuration="Release" /p:Platform="x64"
/p:Verbosity="quiet" /p:TreatWarningsAsErrors="true" /logger:Fake.MsBuildLogger+ErrorLogger,"D:\MyProjectFolder\Project\packages\FAKE\tools\FakeLib.dll"
我不确定 属性 是否设置正确,但我通过阅读 FAKE 和 MSBuild 的文档尝试了各种版本。
根据我在网上阅读的内容,必须将 属性 提供给编译器,如果 属性 是在 XML 文件中定义的,则该编译器将无法工作。
我使用的是 FAKE 4.64.11。
我希望所有警告都被视为错误,而不仅仅是特定的警告。
希望有人能提供帮助。
所以...在进一步研究之后,似乎缺少程序集等 MSB 错误无法被 TreatWarningsAsErrors-approach 捕获,正如我上面所说的。
解决此问题的一种方法是使用自定义 build-wrapper 来捕获这些错误。
我在这个问题的答案中找到了答案:Treat all warnings as errors
另一个类似的线程:
How can I treat MSB3245 (could not resolve reference) warning as an error?
我正在使用 FAKE 和 MSBuild 使用 .fsx 脚本构建项目。 使用 MSBuild 构建时,我给它几个参数:
Target "BuildProject" (fun _ ->
CleanDir ProjectDir
[ProjectPath]
|> MSBuild ProjectDir "Build" ["Configuration", "Release"; "Platform","x64"; "Verbosity", "quiet"; "TreatWarningsAsErrors", "true"]
|> ignore)
但是,当我 运行 我的脚本时,警告不会被视为错误:
Build succeeded.
1 Warning(s)
0 Error(s)
Time Elapsed 00:00:11.36
Finished Target: BuildProject
这是我的命令行输入:
Building project: MyProject/MyProject.fsproj
C:\Program Files (x86)\Microsoft Visual
Studio17\Professional\MSBuild.0\Bin\MSBuild.exe
MyProject/MyProject.fsproj /t:Build /m /nodeReuse:False /p:RestorePackages="False"
/p:OutputPath="D:\MyProjectFolder\build\MyProject" /p:Configuration="Release" /p:Platform="x64"
/p:Verbosity="quiet" /p:TreatWarningsAsErrors="true" /logger:Fake.MsBuildLogger+ErrorLogger,"D:\MyProjectFolder\Project\packages\FAKE\tools\FakeLib.dll"
我不确定 属性 是否设置正确,但我通过阅读 FAKE 和 MSBuild 的文档尝试了各种版本。
根据我在网上阅读的内容,必须将 属性 提供给编译器,如果 属性 是在 XML 文件中定义的,则该编译器将无法工作。
我使用的是 FAKE 4.64.11。
我希望所有警告都被视为错误,而不仅仅是特定的警告。
希望有人能提供帮助。
所以...在进一步研究之后,似乎缺少程序集等 MSB 错误无法被 TreatWarningsAsErrors-approach 捕获,正如我上面所说的。 解决此问题的一种方法是使用自定义 build-wrapper 来捕获这些错误。
我在这个问题的答案中找到了答案:Treat all warnings as errors
另一个类似的线程: How can I treat MSB3245 (could not resolve reference) warning as an error?