如果我们给它一个 C# 文件,一个 .CS ,它是否能够编译它并说例如一个“;” 在您的代码的第 12 行缺少?在我的程序后面的表单中 - 这是 Java RCP 应用程序,我可以在电子表格中显示这些编译错误
MSBuild怎么样?这是否能够显示与我之前的示例相同的编译错误?
如果我们给它一个 C# 文件,一个 .CS ,它是否能够编译它并说例如一个“;” 在您的代码的第 12 行缺少?在我的程序后面的表单中 - 这是 Java RCP 应用程序,我可以在电子表格中显示这些编译错误
MSBuild怎么样?这是否能够显示与我之前的示例相同的编译错误?
将 MSBuild 视为一种美化make
或类似的东西ANT
- 它是一种用于描述编译/构建任务的语言。当您使用 MSBuild 构建您的 c# 程序时,您实际上是在使用csc.exe
编译部分。
假设这是您的代码(program.cs):
namespace MyCustomBuild
{
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Hello World")
}
}
}
您可以调用csc program.cs
并接收以下输出
Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1
Copyright (C) Microsoft Corporation. All rights reserved.
program.cs(7,52): error CS1002: ; expected
或者,您可以使用 msbuild 来实现完全相同的结果!这里是内容build.msbuild
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Default">
<Csc Sources="program.cs"/>
</Target>
</Project>
然后,您可以调用具有不同详细级别的 msbuild 文件,如图所示。
msbuild build.msbuild /verbosity:quiet
和msbuild build.msbuild /verbosity:minimal
Microsoft (R) Build Engine Version 4.0.30319.1
[Microsoft .NET Framework, Version 4.0.30319.269]
Copyright (C) Microsoft Corporation 2007. All rights reserved.
program.cs(7,52): error CS1002: ; expected [<filePath>\build.msbuild]
msbuild build.msbuild /verbosity:normal
:
Microsoft (R) Build Engine Version 4.0.30319.1
[Microsoft .NET Framework, Version 4.0.30319.269]
Copyright (C) Microsoft Corporation 2007. All rights reserved.
Build started 6/6/2012 12:13:00 PM.
Project "<filePath>\build.msbuild" on node 1 (default targets).
Default:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /out:program.exe program.cs
program.cs(7,52): error CS1002: ; expected [<filePath>\build.msbuild]
Done Building Project "<filePath>\build.msbuild" (default targets) -- FAILED.
Build FAILED.
"<filePath>\build.msbuild" (default target) (1) ->
(Default target) ->
program.cs(7,52): error CS1002: ; expected ["<filePath>\build.msbuild]
0 Warning(s)
1 Error(s)
Time Elapsed 00:00:00.28
其余两个详细级别是详细的和诊断性的,如果您需要,它们会提供更多信息。我不确定您想要为电子表格提供多少信息,但希望其中一种对您有用。