Tôi muốn điều chỉnh đầu ra từ cấu hình xây dựng TeamCity của thư viện lớp để các tệp dll được tạo có số phiên bản sau: 3.5.0.x, trong đó x là số sửa đổi lật đổ mà TeamCity đã chọn.Làm cho TeamCity tích hợp số xây dựng Subversion vào phiên bản lắp ráp
Tôi đã tìm thấy rằng tôi có thể sử dụng biến môi trường BUILD_NUMBER
để nhận x, nhưng tiếc là tôi không hiểu tôi cần phải làm gì khác.
"Hướng dẫn" tôi tìm thấy tất cả nói "Bạn chỉ thêm đoạn mã này vào kịch bản", nhưng không nói đoạn mã và "this" thường đề cập đến nhiệm vụ AssemblyInfo từ Tiện ích cộng đồng MSBuild.
Tôi có cần xây dựng kịch bản MSBuild tùy chỉnh bằng cách nào đó để sử dụng không? Có phải "tập lệnh" giống như tệp giải pháp hoặc tệp dự án C# không?
Tôi không biết nhiều về quy trình MSBuild, ngoại trừ việc tôi có thể chuyển trực tiếp tệp giải pháp cho MSBuild, nhưng những gì tôi cần thêm vào "tập lệnh" là XML và tệp giải pháp đã quyết định không trông giống như XML.
Vì vậy, bất kỳ ai cũng có thể chỉ cho tôi hướng dẫn từng bước về cách thực hiện công việc này?
Đây là những gì tôi đã kết thúc với:
- Cài đặt MSBuild Community Tasks
Chỉnh sửa các tập tin csproj của lớp thư viện lõi của tôi, và thay đổi phía dưới để nó đọc:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" /> <Target Name="BeforeBuild"> <AssemblyInfo Condition=" '$(BUILD_NUMBER)' != '' " CodeLanguage="CS" OutputFile="$(MSBuildProjectDirectory)\..\GlobalInfo.cs" AssemblyVersion="3.5.0.0" AssemblyFileVersion="$(BUILD_NUMBER)" /> </Target> <Target Name="AfterBuild">
Thay đổi tất cả các tập tin AssemblyInfo.cs của tôi để họ không chỉ định hoặc AssemblyVersion hoặc AssemblyFileVersion (nhìn lại, tôi sẽ xem xét đưa AssemblyVersion trở lại)
- Đã thêm liên kết đến GlobalInfo.cs toàn cầu hiện nay bên ngoài tất cả các dự án
- Hãy chắc chắn rằng tập tin này được xây dựng một lần, vì vậy mà tôi có một tập tin mặc định trong kiểm soát nguồn
này bây giờ sẽ cập nhật GlobalInfo.cs chỉ khi biến môi trường BUILD_NUMBER được thiết lập, mà nó là khi tôi xây dựng thông qua TeamCity.
Tôi đã chọn lưu giữ tham số AssemblyVersion, do đó tài liệu tham khảo vẫn hoạt động và chỉ cập nhật AssemblyFileVersion, để tôi có thể xem tệp nào tạo từ dll.
Thật không may, patcher của họ không [hiện] (http://confluence.jetbrains.net/display/TCD65/AssemblyInfo+Patcher) cho phép một để xác định rõ rệt 'AssemblyVersion' và giá trị 'AssemblyFileVersion' . – ladenedge
Đề xuất của bạn rất hữu ích trong các trường hợp mà mối quan tâm chính là có thể theo dõi số bản dựng: cảm ơn! – faester
Người đàn ông tôi sắp sửa tạo ra rất nhiều mã scheiss boilerplate chỉ để lấy mã này vào mã của tôi. Bạn đã lưu tôi 2 hoặc 3 ngày làm việc! –