2010-08-09 34 views
5

Tôi đang cố gắng viết một dự án MSBuild sẽ tạo tài liệu html bằng cách sử dụng doxygen. Tôi không thể tìm thấy bất cứ điều gì về điều đó trên mạng ngoại trừ một số example, có vẻ như không đầy đủ; nó không phân tích cảnh báo doxygen.MSBuild và IgnoreStandardErrorWarningFormat

Tôi thấy rằng nhiệm vụ MSBuild's Exec có các tham số như IgnoreStandardErrorWarningFormat và CustomWarningRegularExpression. "Lỗi chuẩn/Định dạng cảnh báo" là gì và loại RE nào được cho phép trong các thuộc tính này?

Edit: ah, "Bên trong Microsoft Build Engine" sai mô tả nó như tài sản trong .NET 3.5, nơi mà nó thực sự là từ 4. Không sử dụng đối với tôi ...

Trả lời

11

Định dạng lỗi msbuild/cảnh báo tiêu chuẩn được mô tả ở đây: http://blogs.msdn.com/b/msbuild/archive/2006/11/03/msbuild-visual-studio-aware-error-messages-and-message-formats.aspx.

Tóm lại, định dạng là:

MSBuild nhận thông báo lỗi và cảnh báo đã được định dạng đặc biệt bởi nhiều công cụ dòng lệnh mà thường viết thư cho giao diện điều khiển. Ví dụ, hãy xem các thông báo lỗi sau đây - tất cả chúng đều được định dạng phù hợp để MSBuild và Visual Studio thân thiện.

Main.cs(17,20): warning CS0168: The variable 'foo' is declared but never used 
C:\dir1\foo.resx(2) : error BC30188: Declaration expected. 
cl : Command line warning D4024 : unrecognized source file type 'foo.cs', object file assumed 
error CS0006: Metadata file 'System.dll' could not be found. 

Các thông điệp này xác nhận với định dạng đặc biệt được hiển thị dưới đây, và bao gồm 5 phần - theo thứ tự của các bộ phận rất quan trọng và không nên thay đổi:

Canonical Errors/Warnings

xứ (Bắt buộc)

Xuất xứ có thể để trống. Nếu có, nguồn gốc thường là tên công cụ, chẳng hạn như 'cl' trong một trong các ví dụ. Nhưng nó cũng có thể là tên tệp, như 'Main.cs' được hiển thị trong ví dụ khác. Nếu nó là một tên tập tin, sau đó nó phải là tuyệt đối hoặc một tên tập tin tương đối, tiếp theo là một thông tin dòng/cột trong ngoặc đơn tùy chọn theo một trong các hình thức sau:

(line) or (line-line) or (line-col) or (line,col-col) or (line,col,line,col) 

mục con (Tùy chọn)

Danh mục con được sử dụng để phân loại chính nó hơn nữa và không được bản địa hóa.

loại (Bắt buộc)

Thể loại phải là 'lỗi' hoặc 'cảnh báo'. Trường hợp không quan trọng. Giống như nguồn gốc, danh mục không được bản địa hóa.

Mã (Bắt buộc)

Mã xác định một lỗi cụ mã/cảnh báo ứng dụng. Mã không được bản địa hóa và không được chứa dấu cách.

Text (Tùy chọn)

Thành viên thân thiện văn bản giải thích các lỗi, và phải được bản địa hoá nếu bạn phục vụ cho nhiều miền địa phương.

2

tôi không thể tìm thấy tài liệu trên nó ngay bây giờ, nhưng tôi nghĩ rằng định dạng sai số chuẩn là một cái gì đó giống như

.*(\d+(,\d+(,\d+,\d+)?)?)?: error .*:.* 
.*(\d+(,\d+(,\d+,\d+)?)?)?: warning .*:.* 

ví dụ:

c:\somefile.txt(10,20,10,30): error CMD1234: blarg 
c:\somefile.txt(10,20): error CMD1234: yadda yadda 
c:\somefile.txt: warning ARG5678: blah blah 
+0

Tôi cũng không thể tìm thấy. Bất kỳ ai? – liori

2

Định dạng được ghi đầy đủ trong mã nguồn MSBuild here.

+0

Ah, những hiểm họa của phần mềm tìm nguồn mở. Cảm ơn bạn! – liori