Tôi sử dụng tác vụ AssemblyInfo khi bạn mô tả trong nhận xét của mình mọi lúc.
<!-- update standard assembly attribute in all projects -->
<Target Name="BeforeBuild" >
<Message Text="Updating AssemblyInfo to Version $(VersionNumber)"></Message>
<Message Text="Writing to AssemblyInfo files in $(SolutionRoot)"></Message>
<AssemblyInfo AssemblyInfoFiles="@(AssemblyInfoFiles)"
AssemblyCopyright="$(AssemblyCopyright)"
AssemblyVersion="$(VersionNumber)"
AssemblyFileVersion="$(VersionNumber)"
>
</AssemblyInfo>
</Target>
Giá trị VERSIONNUMBER được truyền từ bên ngoài hồ sơ dự án MSBuild chính xác như bạn mô tả:
MSBuild <project_file> /p:VersionNumber=<value>;...
Chúng tôi sử dụng các mục tiêu BeforeBuild để đảm bảo AssemblyInfo.cs tập tin tất cả được làm việc trên trước khi xây dựng bắt đầu . Đây không phải là những gì bạn muốn?
Tại sao nhiệm vụ AssemblyInfo không phù hợp với bạn? Đó là mục đích * là * để thiết lập thông tin lắp ráp, bao gồm thuộc tính số phiên bản (AssemblyVersion). – DaveE
Số phiên bản cần phải được thiết lập dựa trên một số quy tắc bên ngoài không phải trên một số quy tắc có thể được tích hợp bằng AssemblyInfoTask. Về cơ bản tôi muốn đối số dòng lệnh trở thành số phiên bản. – user379429