有些混亂。如果我們給它一個C#文件,.CS,是它能夠編譯它,比方說一「」缺少你的代碼的第12行?在一個稍後在我的程序中的表單中 - 這是Java RCP應用程序,我可以在電子表格中顯示這些編譯錯誤
MSBuild如何?它能夠顯示與我以前的例子相同的編譯錯誤嗎?
有些混亂。如果我們給它一個C#文件,.CS,是它能夠編譯它,比方說一「」缺少你的代碼的第12行?在一個稍後在我的程序中的表單中 - 這是Java RCP應用程序,我可以在電子表格中顯示這些編譯錯誤
MSBuild如何?它能夠顯示與我以前的例子相同的編譯錯誤嗎?
說這是你的代碼(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
剩下的兩個詳細級別詳細,診斷,如果你想要他們目前甚至更多的信息。我不確定您的電子表格需要多少信息,但希望這些信息對您有用。
把MSBuild看作是美化make
或者更像ANT
這是一種描述編譯/編譯任務的語言。當您使用MSBuild構建C#程序時,實際上是使用csc.exe
作爲編譯部分。
謝謝。 「它能夠編譯它並說例如在你的代碼的第12行中缺少」;「在稍後在我的程序中的表單中 - 這是Java RCP應用程序,我可以在電子表格中顯示這些編譯錯誤」? – Bohn
你問是否csc.exe會編譯一些東西,即使有編譯錯誤?答案是否定的。或者你問如果csc.exe可以返回一個錯誤列表?答案是肯定的。你的問題有點混亂。 – Crisfole