tôi đã được yêu cầu để tích hợp StyleCop trong quá trình xây dựng CI của chúng tôi theo cách như vậy mà:StyleCop tích hợp với CI quá trình xây dựng (Criuse Control, Nant, msbuild và StyleCop)
- tập tin dự án cá nhân trong chúng ta (lớn) giải pháp không bị ảnh hưởng
- tôi không cần phải sử dụng bất kỳ bên thứ 3 cụ
yêu cầu đầu tiên (và tôi không hiểu đầy đủ này chưa) là do thực tế rằng chúng tôi không' Tôi muốn chạy StyleCop trên toàn bộ giải pháp ngay lập tức. Rõ ràng, khi StyleCop được chạy từ bên trong VS nó bỏ qua một số thuộc tính xác định các tệp cần bỏ qua. Bởi vì điều này, nếu chúng ta có nó chạy trên các máy dev, chúng tôi sẽ liên tục bị tấn công bởi hàng ngàn vi phạm mà chúng ta chưa sẵn sàng giải quyết. Vì vậy, dòng dưới cùng là chúng tôi muốn để có thể chạy nó chỉ trên máy chủ xây dựng.
môi trường xây dựng của chúng tôi hiện nay bao gồm:
kiểm soát Cruise> nhiệm vụ Nant thực thi msbuild (thông qua exec)
Nhiệm vụ Nant là dưới đây:
<target name="buildSolution">
<echo message="Building solution..." />
<exec program="C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe"
commandline="${Project.SolutionFile} /t:Rebuild /p:Configuration=${Project.SolutionBuildConfiguration} /v:q" workingdir="." />
</target>
Khi lần đầu tiên tôi nhìn này Tôi nghĩ rằng nó sẽ là một trường hợp đơn giản của việc thực hiện StyleCop một cách tương tự như cách msbuild đang được thực hiện.
Tuy nhiên, StyleCop đến như là một tập hợp các dlls ...
Vì vậy, đây có nghĩa là tôi không thể làm những gì tôi dự định ...... Tôi nghĩ ....
Tất cả các bài viết tôi có googled ngày hôm nay đã nói "sử dụng StyleCopCmd" mà tôi cũng không thể làm vì hạn chế công cụ của bên thứ 3.
Tôi đã xem công cụ và dường như thực hiện tác vụ nant tùy chỉnh khởi động StyleCopConsole, móc vào một vài sự kiện và xuất ra báo cáo được định dạng độc đáo. Nhưng để có thể biện minh cho việc tạo ra bất kỳ công cụ nào trong nhà, tôi cần có khả năng giải thích đầy đủ lý do tại sao tôi không thể đạt được những gì tôi muốn trong tệp cấu hình nant. Hoặc theo bất kỳ cách nào khác không liên quan đến việc tạo hoặc sử dụng công cụ. Và lý tưởng, nó sẽ nhanh hơn nếu tôi không phải viết hoặc sử dụng một công cụ nào.
Vì vậy, câu hỏi của tôi là, có khả thi không?
Hi Trumpi - Tôi sẽ qua nó bây giờ và cố gắng nó ra - một câu hỏi - không "target =" Rebuild "" vẫn như cũ hoặc sẽ mà bây giờ trỏ đến gốc xây dựng mục tiêu của tôi (hiển thị trong bài viết của tôi)? –
cũng có, đường dẫn đến tệp Microsoft.StyleCop.Targets đã sửa đổi - có liên quan đến tệp xây dựng hoặc tệp giải pháp này không? –
hmm được googling và nghĩ rằng nó cần phải đi bên trong nhiệm vụ ban đầu của tôi tức là replcae gọi exec - cố gắng mà bây giờ ... –