Wiki


Wiki Table of Contents

Tags

Page Details

Published by:
This page has not yet been rated

Hướng dẫn: Team Build( phần 2)

Customization

•  Sử dụng một bước post-build tùy chỉnh để  build một installer project.

•  Sử dụng MS Build Toolkit Extras để build Microsoft .NET 1.1 applications.

•  Sử dụng TFSBuild.proj để chỉnh sửa build của bạn.

•  Sử dụng một bước pre-build tùy chỉnh để  build một project có sự phụ thuộc đến team project khác.

Sử dụng một bước post-build tùy chỉnh để  build một installer project

Vì Team Build mặc định không hỗ trợ các setup project, bạn nên sử dụng một bước post-build tùy chỉnh để biên dịch  setup project và copy các tập tin binary đến các vị trí build drop location.  

Tài nguyên bổ sung

Sử dụng MS Build Toolkit Extras để build Microsoft .NET 1.1 applications

Team Build mặc định không hỗ trợ các ứng dụng .NET 1.1 applications. Bộ MSBuild Extras - Toolkit dành cho .NET 1.1 (MSBee) cho phép các build trong .NET 1.1  nhưng lại đòi hỏi rằng các project của bạn và các solution phải được upgraded đến Visual Studio 2005. Nếu bạn không thể upgrade đến Visual Studio 2005 projects and solutions, bạn có thể sử dụng một custom post-build step để biên dịch các  .NET 1.1 applications.

Tài nguyên bổ sung

 

Sử dụng TFSBuild.proj để chỉnh sửa build của bạn

Để chỉnh sửa thông tin về build-như là build server, drops location, hay  build directory-bạn có thể chỉnh sửa file TFSBuild.proj.

File TFSBuild.proj chứa rất nhiều thông tin cần thiết dùng để thực thi một Team Build. Thông tin này gồm có các build location và những gì mà build nên thực thi phân tích code tĩnh(static code analysis) và các unit test(kiểm thử đơn vị). Để chỉnh sửa build, bạn chỉnh sửa file TFSBuild.proj.

Để chỉnh sửa TFSBuild.proj file

 1.  Kiểm tra các file từ source control.

2.  Cập nhật các thông tin build trong các file. 

3.  Kiểm tra lại các file, cam kết thay đổi.

Lần tiếp theo khi mà build được thực thi, nó sẽ sử dụng build data đã sữa chữa.

Tài nguyên bổ sung

Sử dụng một bước pre-build tùy chỉnh để  build một project có sự phụ thuộc đến team project khác.

Team Build không hỗ trợ build các solution ngang qua giữa các team project. Để cho phép điều này xảy ra, bạn phải tùy chỉnh file TFSBuild.proj để kiểm tra phần code bạn cần từ các project khác mà các build của bạn phụ thuộc vào.

Tài nguyên bổ sung

 

Deployment : Triển Khai

•  Trên các team lớn, install các build service trên một separate server(server riêng biệt).

Trên các Team lớn, Install các Build Services trên một Separate Server

Build( biên dịch chương trình) cho các đội( team) lớn mất rất nhiều thời gian và cần sử dụng khá lớn nguồn tài nguyên của server. Nếu bạn chạy các build của bạn trên Team TFS server, điều này ảnh hưởng đến đô tin cậy, hiệu suất, và khả năng mở rộng của server.

Để cải thiện hiệu suất build của bạn và giảm việc  load trên tầng application của bạn, bạn nên chạy các build trên một server riêng biệt dùng để build.

Tài nguyên bổ sung

Performance

•  Sử dụng các incremental build để nâng cao hiệu suất.

•  Tránh đồng bộ hóa các folder dự phòng trong việc build của bạn.

•  Sử dụng các workspace để tránh việc kiểm tra các file và các project không mong muốn khi đang thực hiện một Team Build

•  Xem xét việc sử dụng nhiều build machine để nâng cao hiệu suất.

Sử dụng các incremental build để nâng cao hiệu suất

Mặc định, Team Build dọn dẹp các thư mục mà nó sử dụng để thực hiện việc build trước khi nó kiểm tra các cây source control hoàn toàn cần thiết cho việc build. Team Build cũng xóa bỏ và khởi động lại các workspace được sử dụng để kiểm tra các source cho việc build. Để nâng cao hiệu suất, bạn có thể thiết lập cho Team Vuild chỉ lấy các source đã thay đổi kể từ lần Team Build cuối cùng

 Nếu số lượng các source cần thiết cho một build lớn và build server thì xa từ TFS server, thì việc kiểm tra các source code có thể mất nhiều thời gian để thực hiện. Trong trường hợp đó, bạn nên xem xét sử dụng một incremental build. Để thực hiện incremental build, bạn cần thiết lập một vài các giá trị trong tập tin TFSBuild.proj của bạn thành giá trị true. Bạn cần làm:

  • Stop Team Build từ việc dọn dẹp các thư mục build cục bộ và các thư mục source.
  • Stop Team Build từ việc tạo lại các workspace được sử dụng cho việc build.
  • Cấu hình Team Build để chỉ lấy các source đã được thay đổi từ source control.

Để thực hiện một incremental build  

1.  Tạo mới một build type để đại diện cho incremental build.

2.  Kiểm tra để chỉnh sửa tập tin TFSBuild.proj liên quan đến các incremental build type mà bạn vừa tạo.

3.  Thêm phần sau <PropertyGroup> ngay trước khi phần tử  </project> đóng trong TFSBuild.proj: 

<PropertyGroup>

    <SkipClean>true</SkipClean>

    <SkipInitializeWorkspace>true</SkipInitializeWorkspace>

    <ForceGet>false</ForceGet>

</ PropertyGroup>

Các cài đặt này thực hiện như sau:

  • SkipClean. Thiết lập cho SkipClean thành true để đảm bảo là việc build sẽ không dọn dẹp các local build và sources folder.
  • SkipInitializeWorkspace. Thiết lập cho SkipInitializeWorkspace thành true để đảm bảo là build sẽ ra khỏi workspace đã có trong build machine.
  • ForceGet. Thiết lập cho ForceGet thành false để đảm bảo là việc build sẽ chỉ nhận các source đã được cập nhật, hơn là nhận tất cả các source cho workspace.

Tài nguyên bổ sung

  • Để có thêm thông tin, hãy xem "Practices at a Glance - Team Build" trong tài liệu này.
  • Để có thếm thông tin về việc cấu hình một incremental build, hãy xem "How to: Configure Team Foundation Build for an Incremental Build" tại  http://msdn2.microsoft.com/en-us/library/aa833876(VS.80).aspx  

Tránh đồng bộ hóa các folder dự phòng trong việc build của bạn

Bạn nên giảm workspace mapping của bạn xuống hay các cloak folder mà không cần thiết như một phần của quá trình build.

Khi bạn thực thi một Team Build, server truy tìm tất cả các file mà nó cần từ source control. Tất cả file mà được truy tìm, được xác định bởi các workspace dùng để tạo các Team Build Type. Một số file được map(ánh xạ) vào trong workspace có lẽ không cần thiết. Bạn có thể thay đổi định nghĩa workspace definition của bạn để giảm các folder được bao gồm trong đó, hay bạn có thể cloak các file không cần thiết để chúng không được truy tìm như một phần của quá trình build.

Thí dụ, mặc định sự mapping cho một project mới là  $/TeamProject. Nếu tất cả source file của bạn được nằm dưới $/TeamProject/foo/bar/foobar/sources, bạn nên chỉ map thư mục đó. 

Để  cloak các file ở bên dưới workspace mapping của bạn, bạn có thể chỉnh sửa tập tin WorkspaceMapping.xml mà được tạo khi Team Build Type được tạo và được sử dụng để xác định các folder mà được truy tìm khi đang thực hiện việc build. Bạn có thể cloak các file và các folder không cần thiết như một phần của quy trình build. Folder cloaking được ưa chuộng hơn vì việc cloak các individual file có thể giới thiệu chi phí bảo trì.

Để cloak các folder

1.  Hãy kiểm tra tập tin WorkspaceMapping.xml từ source control.

2.  Và thêm các mục cloak thích hợp vào file này.

3.  Kiểm tra tập tin WorkspaceMapping.xml. 

Thí dụ sau đảm bảo là documentation folder sẽ không được truy tìm từ source control trong suốt một Team Build: 

<Mappings>

  <InternalMapping ServerItem="$/MyTeamProject"

LocalItem="c:\projects\teamproject" Type="Map" />

  <InternalMapping ServerItem="$/MyTeamProject/documentation" Type="Cloak"

/>

</Mappings>

Tài nguyên bổ sung

Sử dụng các workspace để tránh việc kiểm tra các file và các project không mong muốn khi đang thực hiện một Team Build

Team Build kiểm tra các source của bạn để thực thi quá trình build. Nếu bạn có một cây source tree cho một project, việc kiểm tra các source có thể  rất tốn thời gian. Nếu bạn chỉ build một phần của team project, bạn nên đảm bảo là chỉ các source cần thiết được kiểm tra.

Nếu bạn có một team project lớn, nó sẽ chứa nhiều Visual Studio solutions, mỗi solution được sử dụng để build một phần riêng biệt của team project. Khi bạn tạo một Team Build Type, bạn xác định solution mà Team Build sẽ sử dụng. Nếu bạn xác định một solution file mà không xác định một workspace, Team Build sẽ kiểm tra tất cả các source ở trong team project trước khi thực hiện một quá trình build.  

Để chỉ kiểm tra những source mà bạn cần, đầu tiên bạn phải xác định một workspace. Trước khi tạo Team Build Type, đầu tiên bạn xác định một workspace và chỉ map solution mà bạn muốn để build workspace đó. Khi bạn xác định Team Build Type, hãy chọn workspace mà bạn đã xác định và sau đó chọn solution. Bằng cách này, chỉ các những source đã được xác định trong workspace sẽ được kiểm tra.

Tài nguyên bổ sung

Xem xét việc sử dụng nhiều build machine để nâng cao hiệu suất

Nếu bạn có nhiều build type mà tất cả đều đang thực thi trên một single build server, thì server có thể bị tràn(overwhelmed). Trong tình huống như thế, bạn nên xem xét việc thực thi các build type khác nhau trên các build server khác nhau. 

Một quá trình build có thể mất nhiều thời gian để thực thi, đặc biệt nếu build đó là dành cho một project lớn. Nếu bạn đang sử dụng CI hay các frequent scheduled build, thì build server có thể không có khả năng giữ một khối lượng build đang được khởi tạo.

Bạn có thể install nhiều build server để  phân phối việc load giữa các server khác nhau. Hãy chỉ định các build type khác nhau cho từng server đến thậm chí các build load.

Tài nguyên bổ sung

  • Để có thêm thông tin, hãy xem "Chương 7 - Giải thích Team Build" trong tài liệu này.

Projects

•  Tránh sự phụ thuộc qua lại giữa các team project.

•  Sử dụng các project reference thay vì các file reference.

•  Sử dụng Web Deployment Project cho các Web application.

•  Sử dụng một chiến lược single-solution strategy nếu bạn đang làm việc trên một team project nhỏ.

•  Sử dụng một chiến lược partitioned-solution strategy nếu bạn đang làm việc trên một team project lớn với nhiều project nhỏ độc lập nhau.

•  Sử dụng một chiến lược multiple-solution strategy nếu bạn đang làm việc trên một team project rất lớn mà yêu cầu đến hàng chục các project nhỏ độc lập.

Tránh sự phụ thuộc qua lại giữa các Team Project.

Thông thường, bạn nên tránh sự phụ thuộc qua lại giữa các team project và hãy cố gắng để giữ cho tất các các các solutions/projects có liên quan hay độc lập nhau ở bên dưới của cùng một team project. Điều này giảm sự cần thiết của việc tùy chỉnh các build script. Nếu bạn có một phụ thuộc dependency nào đó,hãy sử dụng các project references để xác định nó, hay branch các dependency từ một shared project ở trong project của bạn. Bạn nên tránh các file references bởi vì quản lý chúng rất khó khăn.

Tài nguyên bổ sung

Sử dụng các project reference thay vì các file reference

Nếu bạn cần reference các assembly khác trong cùng một Visual Studio solution, bạn nên sử dụng một Visual Studio project reference. Bằng cách sử dụng các project reference, bạn kích hoạt Visual Studio để làm một vài việc tự động cho bạn, như là giữ sự cấu hình build bất đồng bộ (debug/release) và theo dõi các version và build lại các thành phần cần thiết khi ráp lại các versions change.

Tài nguyên bổ sung

Sử dụng Web Deployment Project cho các Web application

Các web deployment project có liên kết với một Visual Studio Web Site project hay Web Application project. Chúng cho phép bạn quản lý các thiết lập build cũng như là một loạt các thiết lập phổ biến khác đến các ASP.NET Web applications. Thí dụ, deployment project (triển khai dự án) cho bạn một cách thức truy cập dễ dàng đến Web.config, connection strings, và các thư mục virtual directories, và cho phép bạn triển khai dễ dàng hơn  các ứng dụng biên dịch Web đến các hosting server. 

Tài nguyên bổ sung

Sử dụng một chiến lược single-solution strategy nếu bạn đang làm việc trên một team project nhỏ.

Nếu bạn làm việc với một team nhỏ, hãy xem xét sử dụng một single Visual Studio solution để chứa tất cả các project của bạn. Cấu trúc này đơn giản hóa việc phát triển vì tất cả các phần code có sẵn khi bạn mở solution. Chiến thuật này cũng dễ dàng để thiết lập các reference, bởi vì tất cả các reference ở giữa các project trong solution của bạn. Bạn có thể vẫn còn cần sử dụng các file reference để reference đến các assembly ở bên cung cấp thứ ba, như là các thành phần được mua, mà ở bên ngoài solution của bạn.

Tài nguyên bổ sung

  • Để có thêm thông tin, hãy xem "Chương 3 - Cấu trúc Projects và Solutions trong Source Control" trong tài liệu này.

Sử dụng một chiến lược partitioned-solution strategy nếu bạn đang làm việc trên một team project lớn với nhiều project nhỏ độc lập nhau.

Nếu bạn làm việc trên một đội lớn, hãy xem xét sử dụng nhiều solution, mỗi cái đại diện cho một hệ thống con trong ứng dụng của bạn. Các nhà phát triển có thể sử dụng những solution này để làm việc trên các phần nhỏ hơn của hệ thống mà không có load tất cả các code giữa các project. Bạn nên thiết kế cấu trúc solution của bạn để bất kì project nào mà có các sự phụ thuộc được nhóm lại với nhau.

Điều này cho phép bạn sử dụng các project reference hơn là các file reference. Hãy xem xét việc tạo một master solution file mà chứa tất cả các project, nếu bạn muốn sử dụng file này để build toàn bộ ứng dụng. 

Lưu ý: Nếu bạn đang build với Team Build (mà dựa vào MSBuild),  có thể tạo các cấu trúc solution mà không bao gồm các referenced project. Miễn là toàn bộ solution được build đầu tiên, khởi tạo các binary output từ mỗi solution, MSBuild sẽ có thể làm theo các project references ở bên ngoài các bound của solution của bạn và build một cách thành công. Các solution được tạo bằng cách này sẽ không build từ Visual Studio build command, nhưng sẽ chỉ làm việc với Team Build và MSBuild.

Tài nguyên bổ sung

  • Để có thêm thông tin, hãy xem "Chương 3 - Cấu trúc Projects và Solutions trong Source Control" trong tài liệu này.

Sử dụng một chiến lược multiple-solution strategy nếu bạn đang làm việc trên một team project rất lớn mà yêu cầu đến hàng chục các project nhỏ độc lập

Nếu bạn làm việc trên một solution rất lớn yêu cầu đến hàng chục các project, bạn có thể chạy thử dựa vào khả năng mở rộng của solution. Trong tình hướng kịch bản này, hãy chia ứng dụng của bạn thành nhiều solution nhưng không tạo một master solution cho toàn bộ ứng dụng bởi vì tất cả các reference bên trong từng solution là các project reference. References đến các project ở bên ngoài mỗi solution (thí dụ, đến các librarie hay các project được cung cấp bởi bên thứ ba trong các solution khác) là các file reference. Điều này có nghĩa là có thể không có "master" solution. Thay vào đó, một script phải được sử dụng  mà hiểu được thứ tự của các solution phải được build. Một trong những nhiệm vụ bảo trì liên quan đến một cấu trúc nhiều solution(multiple-solution structure) là đàm bảo rằng các lập trình viên không vô tình tạo ra các sự tham chiếu reference vòng tròn giữa các solution. Cấu trúc này đòi hỏi các build script phức tạp hơn và  việc mapping của các mối quan hệ phụ thuộc rõ ràng hơn. Trong cấu trúc này, không thể build toàn bộ ứng dụng trong Visual Studio. Thay vào đó, bạn có thể sử dụng TFS Team Build hay MSBuild một cách trực tiếp.

Tài nguyên bổ sung

  • Để có thêm thông tin, hãy xem "Chương 3 - Cấu trúc Projects và Solutions trong Source Control" trong tài liệu này.

Scheduled Builds

  • Sử dụng một scheduled build để tạo ra các regular build.

Sử dụng một scheduled build để tạo ra các regular build.

Bạn nên sử dụng một scheduled build để tạo ra các build một cách thường xuyên, theo thời gian dự đoán.

Thông thường, các build cung cấp cho các test team và các team khác cần phải đạt được độ tin cậy và nên được tạo sẵn tại một mức thời gian cố định, để các feedback trên các build có thể được thu gom theo đúng thời han.

Mặc dù chức năng Team Build trong TFS không được hỗ trợ các scheduled build từ giao diện người dùng, bạn có thể sử dụng Microsoft Windows Task Scheduler để chạy TFSBuild command utility để khởi động các build tại một thời gian xác định trước.

Để tạo một scheduled build  

1.  Tạo một dòng lệnh TFSBuild command line như sau: 

TfsBuild start <<TeamFoundationServer>> <<TeamProject>> <<BuildTypeName>> 

2.  Đặt dòng lệnh command line trên trong một batch file.

3.  Tạo một  Windows Scheduled Task để chạy batch file tại khoảng thời gian bạn mong muốn.

Tài nguyên bổ sung

  • Để có thêm thông tin, hãy xem "Chương 9 - Cài đặt Scheduled Build với Team Build" trong tài liệu này.
  • Để có thêm thông tin về cài đặt các scheduled build, hãy xem "Làm thế nào - Cài đặt Scheduled Build với Visual Studio Team Foundation Server" trong tài liệu này.

Test-Driven Development

•  Chạy code analysis trong từng build.

•  Chạy các automated test trong từng build.

•  Xem xét cài đặt các build thành fail khi các automated test bị  fail.

Chạy code analysis trong từng build

Sử dụng code analysis như một phần của quá trình build để cải thiện chất lượng build quality. Bạn có thể cấu hình một bước code analysis step trong quy trình build để giúp đảm bảo là code của bạn đáp ứng được các tiêu chuẩn chất lượng, bảo đảm về security, hiệu suất, tính tiện dụng, bảo trì, và các quy định về độ tin cậy được thông qua.

Để bật chế độ code analysis cho một build type, bạn có thể chọn cả code analysis check box ở trong Team Build Type wizard khi bạn tạo mới Team Build Type, hay bạn có thể chỉnh sửa tập tin TFSBuild.proj ngay sau khi build type được tạo.

Để kích hoạt code analysis trong TFSBuild.proj file

  • Nếu bạn muốn tất cả các project đều chạy code analysis, bất kể các thiết lập của project , hãy thay đổi tag <RunCodeAnalysis> thành Always.
  • Nếu bạn muốn chạy code analysis trên từng project dựa trên các thiết lập của project, hãy thay đổi tag <RunCodeAnalysis> thành Default.

Tài nguyên bổ sung

  • Để có thêm thông tin về automatic code analysis như một phần của một build, hãy xem "Làm thế nào - Chạy tự động Code Analysis với Team Build in Visual Studio Team Foundation Server" trong tài liệu này.
  • Để có thêm thông tin về các công cụ code analysis tools, hãy xem "Guidelines for Using Code Analysis Tools" tại http://msdn2.microsoft.com/en-us/library/ms182023(VS.80).aspx

 

Chạy các automated test trong từng build

Chạy các automated tests để tự động có được các feedback về chất lượng build sau mỗi lần build. Để tạo một danh sách các kiểm thử (test list) để liên kết với các build mà bạn phải có trong cả Visual Studio Test Edition hay Visual Studio Team Suite đã cài đặt. Để chạy các automated test trên build server bạn phải có cả Visual Studio Developer Edition, Visual Studio Test Edition, hay Visual Studio Team Suite được cài đặt trên build server.

Để chạy các automated test như một phần của quy trình Team Build process

1.  Tạo một hay nhiều các automated test mà bạn muốn chạy với các build.

2.  Sử dụng Test Manager để tạo một Test List.

3.  Sử dụng Test Manager để nhóm các test vào trong Test List mới bằng các drag và  drop các test từ Test View vào Test List ở trong Test Manager.

4.  Tạo mới một Team Build Type.

5.  Chọn check box để chạy automated tests.

6.  Chọn test project mà với các test và test list của bạn được chọn.

7.  Chọn test list mà bạn muốn chạy.

Tài nguyên bổ sung

Xem Xét Cài Đặt Các Build Thành Fail Khi Các Automated Test Fail

Khi một build(biên dịch chương trình) thất bại bởi vì các lỗi biên dịch, một work item được tạo để theo dõi các failure và việc build được đánh dấu là thất bại. Khi một automated test thất bại, tuy nhiên,  build không thất bại. Các test failure được chuyển thành một warning và quá trình build được tiếp tục.

Để một build thất bại khi kiểm thử sự thất bại(test failure)

1.  Mở tập tin Microsoft.TeamFoundation.Build.targets từ Program\Files\MSBuild\Microsoft\VisualStudio\v8.0\TeamBuild.

2.  Lấy ra để chỉnh sửa và mở tập tin TFSBuild.proj cho Team Build Type mà bạn muốn không thành công khi kiểm thử thất bại(test failure).

 3.  Copy target RunTestWithConfiguration target từ Microsoft.TeamFoundation.Build.targets đến phần cuối của tập tin TFSBuild.proj, ngay trước thẻ đóng của tag </Project>.

4.  Chỉnh sửa thuộc tính ContinueOnError từ true sang false. 

Lưu ý: Sẽ có  hai test tool task. Chỉnh sửa các end-to-end task chỉ để thay đổi trạng thái của các build ở trên build server. Các desktop build task được sử dụng khi đang build trên một desktop của một lập trình viên.

5.  Nếu bạn muốn tạo một work item khi build thất bại, hãy chỉnh sửa RunTestWithConfiguration bằng cách thêm một phần tử OnError ngay trước thể đóng của tag </Target> Phần tử OnError nên giống như sau:

 <OnError ExecuteTargets="CreateWorkItem;"/>

 Bạn có lẽ muốn build thất bại nếu một automated test liên kết bị thất bại. Bạn có lẽ cũng muốn khởi tạo một work item một cách tự động để theo dõi các test failure.

Ngoài ra, nếu bạn muốn tất cả các Team Build Types bị thất bại khi kiểm thử sự thất bại test failure, bạn có thể chỉnh sửa target Microsoft.TeamFoundation.Build.targets một cách trực tiếp. Sự thay đổi này sẽ thay đổi tình trạng của tất cả các Team Build Types. 

Các giải pháp được đề nghị ở trên thực hiện đơn giản nhưng không bảo đảm được tiếp tục có thể làm việc trong các phiên bản trong tương lai của Visual Studio. Nếu bạn thích thực hiện một giải pháp chắc chắn có thể làm việc tiếp tục với các phiên bản VS sau khi upgrade, hãy xem Aaron Hallberg's blog entry, "Determining Whether Tests Passed in Team Build," tại http://blogs.msdn.com/aaronhallberg/archive/2006/09/21/determining-whether-tests-passed-in-team-build.aspx   

Tài nguyên bổ sung

Work Items

  • Sử dụng các work item để theo dõi các build break.

Sử Dụng Các Work Item Để Theo Dõi Các Build Break

Nếu Team Build thất bại, nó sẽ tự động tạo một work item để theo dõi failure đó. Mặc định, phần work item đó sẽ được chỉ định thành 'Active' và title sẽ thông báo cho bạn là có một build failure. Bạn nên chỉ định cho work item này để lập trình viên chịu trách nhiệm hay nhà quản lý việc build để sữa chữa build và giải quyết problem.

The build task trong TFSBuild.proj mà xác định work item này giống như sau:

<!-- Create WorkItem for build failure -->

    <CreateNewWorkItem

          BuildId="$(BuildNumber)"           Description="$(WorkItemDescription)"

          TeamProject="$(TeamProject)"

          TeamFoundationServerUrl="$(TeamFoundationServerUrl)"

          Title="$(WorkItemTitle)"

          WorkItemFieldValues="$(WorkItemFieldValues)"

          WorkItemType="$(WorkItemType)"

          ContinueOnError="true" /> 

 Nếu bạn muốn tùy chỉnh work item được tạo (thí dụ, để chỉ định cho nó một lập trình viên cụ thể hay để đặt tính nghiêm trọng và độ ưu tiên), bạn có thể thay đổi trường WorkItemFieldValues field.

Tài nguyên bổ sung

Build Resources

 

Recent Comments

Leave the first comment for this page.