MSBuild 的 Exec 自帶有錯誤和警告的標準格式,按照此格式輸出,將被識別爲編譯錯誤和編譯警告。ui
而格式只是簡簡單單的 error: 開頭或者 warning: 開頭。冒號前面也能夠加上空格。spa
using System; namespace Walterlv.Demo { internal class Program { private static void Main(string[] args) { Console.WriteLine("warning: 這是一個警告信息。"); Console.WriteLine("error: 這是一個錯誤信息。"); } } }
對於這樣一段在編譯期間執行的程序,編譯時將顯示以下信息,併產生編譯錯誤和編譯警告。code
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net47</TargetFramework> <Target Name="PostBuild" AfterTargets="PostBuildEvent"> <Exec Command="$(OutputPath)$(AssemblyName).exe" /> </Target> </Project>
實際上,上面的 warning
、error
只是省略的格式,而完整的部分是這樣的:orm
file_path(line_start,column_start,line_end,column_end): error_or_warning key: message
Demo.cs(344,59,344,78): warning CS0067: The event 'WalterlvClass.Foo' is never used.
固然,有可能你只是須要一個 error:
開頭或者 warning:
開頭的格式,並不但願真的產生編譯錯誤或者編譯警告,那麼只須要在執行 Exec
的時候設置 IgnoreStandardErrorWarningFormat="True"
。xml
<Exec IgnoreStandardErrorWarningFormat="True" Command="$(OutputPath)$(AssemblyName).exe" />