Tôi tự hỏi liệu có cách nào để đồng bộ hóa số xây dựng (20080213.1) mà không sử dụng BuildNumberOverrideTarget nơi tôi sẽ phải tạo số xây dựng của riêng mình không? Về cơ bản, tôi muốn sử dụng trình tạo tfs buildnumber mặc định/tích hợp sẵn nhưng muốn truy cập nó để sắp xếp các phiên bản lắp ráp của tôi với nó. Điều này có thể được thực hiện và nó là một cách hợp lý để làm điều đó theo cách này?Căn chỉnh số phiên bản lắp ráp với TFS Buildnumber
Trả lời
Có thể. Tại một số điểm, có thể tại AfterGet, bạn có thể sử dụng BuildNumber và tạo một nhiệm vụ tùy chỉnh để cập nhật các tệp AssemblyInfo.cs trong mã nguồn của bạn.
Chúng tôi đã nối vào AfterGet và gây ra mục tiêu của chúng tôi để được phụ thuộc:
<Target Name="AfterGet" DependsOnTargets="VersionAssemblies" />
VersionAssemblies Mục tiêu phấn đấu kéo tất cả các file AssemblyInfo.cs từ $ (SolutionRoot):
<CreateItem Include="$(SolutionRoot)\**\AssemblyInfo.cs;">
<Output TaskParameter="Include" ItemName="AssemblyInfos"/>
</CreateItem>
kiểm tra chúng ra:
<Exec Command="$(TfCommand) checkout "AssemblyInfo.cs" -r"
WorkingDirectory="$(MSBuildProjectDirectory)\..\sources" ContinueOnError="true"/>
chỉnh sửa và thay thế phiên bản tệp bằng $ (Buil dNumber):
<File.Replace Path="%(AssemblyInfos.FullPath)"
NewValue="AssemblyFileVersion("$(BuildNumber)")"
RegularExpression="AssemblyFileVersion\(\"(\d+.\d+.\d+.\d+)\"\)"
IgnoreCase="true"
Force="true"/>
và sau đó kiểm tra các tập tin lại:
<Exec Command="$(TfCommand) checkin /override:"Automated" /comment:"Update AssemblyInfo files to version number $(BuildNumber) - $(NoCICheckinComment) " /noprompt "AssemblyInfo.cs" /recursive"
WorkingDirectory="$(MSBuildProjectDirectory)\..\sources" ContinueOnError="false"/>
Đối với việc thay thế các phiên bản tập tin tôi sử dụng nhiệm vụ File.Replace mà đi kèm với Microsoft SDC tasks trên CodePlex. Cũng lưu ý rằng nếu bạn có một build được kích hoạt trên checkin, khi kiểm tra trong file AssemblyInfo.cs, hãy đảm bảo comment có $ (NoCICheckinComment) vì điều này khiến TFS không kích hoạt một build khác nếu không bạn ' sẽ kết thúc trong một vòng lặp xây dựng vô hạn.
Điều bạn đang yêu cầu là rất hợp lý và có một số cách để đạt được điều này.
Cá nhân, khi tôi làm điều này, tôi không muốn kiểm tra các tệp trong điều khiển phiên bản có số máy chủ tạo trong chúng - nó chỉ giới thiệu quá nhiều đầu đau khi hợp nhất mã trên các nhánh nhưng tôi cũng thích một số phiên bản đã biết sẽ được sử dụng khi một nhà phát triển xây dựng một máy trạm và một máy chủ xây dựng có nguồn gốc phù hợp để làm cho nó thực sự dễ dàng để phân biệt chúng.
Để biết thêm thông tin về làm thế nào tôi muốn làm điều đó, hãy nhìn vào wiki TFS Xây dựng recipies:
hoặc bài viết trên blog của tôi về chủ đề
Hy vọng rằng sẽ giúp,
Martin.
Cảm ơn Martin. Tôi đã đi qua bài viết tuyệt vời của bạn trên sự liên kết và đã sử dụng phương pháp đó. Khi bạn nói rằng bạn thích một số phiên bản đã biết sẽ được sử dụng trên nhà phát triển, bạn có nghĩa là số đó sẽ là số từ tệp thông tin lắp ráp mà không có bất kỳ phần ghi đè nào? nói 1.0.0.0? – Fadeproof
Đối với các nhà phát triển, bạn chỉ sử dụng VS build hoặc bạn có sử dụng các script xây dựng mà các lập trình viên nên sử dụng trên các máy trạm của họ không? – Fadeproof
Đối với các nhà phát triển, tôi chỉ sử dụng VS build. Đôi khi tôi sử dụng xây dựng Developer Workstation bằng cách sử dụng kịch bản TeamBuild - tuy nhiên VS xây dựng có xu hướng có thể làm công việc 90% thời gian và làm cho mọi thứ đơn giản hơn nhiều. Trong câu trả lời cho nhận xét trước đó của bạn, tôi thực sự sử dụng 1.0.0.0 trong các tệp AssemblyInfo. –
- 1. Lấy Phiên bản Lắp ráp từ AssemblyInfo.cs
- 2. Lắp ráp với quyền tùy chỉnh
- 3. Lắp ráp maven tùy chỉnh
- 4. Lắp ráp Maven: lắp ráp
- 5. Phiên bản lắp ráp có thể được cập nhật tự động với mỗi TFS 2010 Build không?
- 6. Làm cách nào để có phiên bản lắp ráp?
- 7. Làm thế nào để remap phiên bản lắp ráp
- 8. Không thể tải phiên bản lắp ráp cho chân trang
- 9. Chỉ số phiên bản lắp ráp như một đối số dòng lệnh trong MSBuild
- 10. Làm cho TeamCity tích hợp số xây dựng Subversion vào phiên bản lắp ráp
- 11. Specify công bố phiên bản với dòng lệnh MSBuild như phiên bản lắp ráp của dự án
- 12. C#: Thư mục lắp ráp tùy chỉnh
- 13. Quản lý số phiên bản lắp ráp tự động trong VS2008
- 14. Nhạy cảm với quá trình Deserialization với phiên bản lắp ráp khác nhau
- 15. Khi nào các chỉ thị căn chỉnh rõ ràng nên được sử dụng trong lắp ráp?
- 16. Lắp ráp 'SomeAssembly, sử dụng' System.Web.Mvc, Phiên bản = 4.0.0.0, có phiên bản cao hơn so với phiên bản được tham chiếu 'System.Web.Mvc, Phiên bản 3.0.0.0
- 17. Breeze.js thất bại với Không thể tải tệp hoặc lắp ráp System.Web.Http.OData, Phiên bản = 4.0.0.0
- 18. Cách phiên bản lắp ráp phù hợp với công trình chính xác?
- 19. Lắp ráp theo Byte
- 20. Số Thay đổi thành Thông tin Phiên bản với TFS được lưu trữ
- 21. Căn chỉnh dọc với Văn bản lõi?
- 22. Lắp ráp đường vòng và lắp ráp GCC (Linux)
- 23. lắp ráp để so sánh hai số
- 24. Học lắp ráp ARM
- 25. Mã lắp ráp iOS
- 26. Deserialize đối tượng vào lắp ráp mà bây giờ đã được ký và được phiên bản
- 27. Tôi có thể dịch các phiên bản lắp ráp mạng không.
- 28. Đang tải 2 phiên bản lắp ráp tại thời điểm chạy
- 29. TFS (Xem trước) xây dựng thất bại do thiếu lắp ráp?
- 30. Ưu tiên tải lắp ráp .NET
Làm thế nào để bạn kéo bản dựng và sửa đổi từ $ (BuildNumber) vì nó theo mặc định của định dạng "MyBuildDefinition_20090213.1"? – Fadeproof
Bạn có thể viết một nhiệm vụ tùy chỉnh để loại bỏ phần MyBuildDefinition_ và loại bỏ nó ra. –