2009-05-21 17 views
15

Tôi đã thêm một hành động dựng sẵn cho một dự án điều khiển web ASP.NET (điều khiển máy chủ), chạy jsmin.exe trên một tập hợp các tệp Javascript. Các tệp đầu ra này là một phần của cây điều khiển nguồn và được nhúng vào trong assembly.Kiểm tra một tệp (TFS) cho một hành động dựng sẵn

Sự cố xảy ra khi quá trình tạo trước chạy, jsmin không thể ghi tệp vì nó chỉ đọc. Có thể kiểm tra tập tin trước khi bàn tay không? Hoặc tôi buộc phải thiết lập các thuộc tính của tập tin trong dòng lệnh.

Bất kỳ giải pháp cải tiến nào cho vấn đề đều được hoan nghênh.

Cập nhật Một vấn đề nhỏ với câu trả lời của Mehmet -bạn cần phải thêm vào trước các thư mục VS:

"$(DevEnvDir)tf" checkout /lock:none "$(ProjectDir)myfile" 

Trả lời

10

Nếu bạn đang sử dụng Team Foundation Server, bạn có thể sử dụng team foundation command line utility (tf.exe) để kiểm tra (các) tệp trong khi tạo trước và sau đó kiểm tra lại chúng trong khi xây dựng sau. Nếu bạn đang sử dụng một cái gì đó khác để kiểm soát nguồn, bạn có thể kiểm tra xem họ có một công cụ dòng lệnh như tf.exe.

2

Nếu bạn không muốn kiểm tra các tệp như một phần của bản dựng (mà bạn thường không làm điều này) thì tôi chỉ cần đặt thuộc tính của tệp .js trước khi chạy jsmin trên chúng. Cách dễ nhất để thiết lập các tệp có thể đọc được là sử dụng tác vụ Attrib được cung cấp bởi MSBuild community extensions. Các phần mở rộng cộng đồng tương tự cũng cung cấp một tác vụ JSCompress để dễ dàng gọi JSMin từ MSBuild.

Vì vậy, bạn muốn có một cái gì đó như sau (không kiểm tra):

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" /> 

<!-- rest of TFSBuild.proj file --> 

<Target Name="AfterGet">  
    <Message Text="Compressing Javascript files under &quot;$(SolutionRoot)&quot;." /> 
    <CreateItem Include="$(SolutionRoot)\**\*.js"> 
    <Output TaskParameter="Include" ItemName="JsFiles"/> 
    </CreateItem> 
    <Attrib Files="@(JsFiles)" ReadOnly="false"/> 
    <JSCompress Files="@(JsFiles)" /> 
</Target> 

Lưu ý rằng bằng cách sửa đổi các tập tin sau khi họ cũng có thể gây ra vấn đề nếu bạn đã cố gắng để di chuyển đến một xây dựng gia tăng.

+0

Có thể không gây nhầm lẫn khi có các tệp đã sửa đổi không hiển thị dưới dạng thay đổi đang chờ xử lý? Đây có thể bị bỏ qua khi đăng ký. –

Các vấn đề liên quan