2016-11-02 17 views
7

Tôi rất mới để làm bánh. Tôi muốn cập nhật thông tin phiên bản của assemblyinfo.cs bằng cách sử dụng cakebuild.Làm thế nào để cập nhật thông tin phiên bản duy nhất trong assemblyinfo.cs bằng cách sử dụng bánh?

void tĩnh công cộng Phương thức CreateAssemblyInfo() ghi đè toàn bộ nội dung của tệp assemblyinfo. Nhưng tôi chỉ cần cập nhật thông tin phiên bản.

Tôi làm cách nào để đạt được điều này?

Kính trọng, Aradhya

Trả lời

7

Có 2 file, một cho thứ tĩnh và một cho tự động tạo bit.

Mẫu mà tôi thường áp dụng là có SolutionInfo.cs được chia sẻ giữa các dự án và AssemblyInfo.cs cho mỗi dự án duy nhất cho mỗi dự án.

Một cấu trúc ví dụ thư mục có thể là

src 
| Solution.sln 
| SolutionInfo.cs 
|  
\--- Project 
    | Project.csproj 
    | 
    \---Properties 
      AssemblyInfo.cs 

Và về cơ bản tập tin csproj của bạn sẽ thay vì:

<Compile Include="Properties\AssemblyInfo.cs" /> 

Hãy cái gì đó như:

<Compile Include="Properties\AssemblyInfo.cs" /> 
<Compile Include="..\SolutionInfo.cs"> 
    <Link>Properties\SolutionInfo.cs</Link> 
</Compile> 

Bằng cách này bạn giữ bất kỳ nhãn hiệu chỉnh sửa cho số AssemblyInfo.cs của bạn và có thể tự động tạo an toàn mà không có nguy cơ ghi đè lên t thông tin.

Điều này cũng cho phép bạn chia sẻ những thứ như phiên bản/bản quyền/công ty giữa các dự án trong một giải pháp.

Phần Bánh xây dựng kịch bản này sẽ giống như thế này:

Task("SolutionInfo") 
    .IsDependentOn("Clean") 
    .IsDependentOn("Restore") 
    .Does(() => 
{ 
    var file = "./src/SolutionInfo.cs"; 
    CreateAssemblyInfo(file, assemblyInfo); 
}); 
4

Nếu bạn không muốn có tập tin riêng biệt bạn cũng có thể sử dụng một regex thay thế:

#addin "Cake.FileHelpers" 
var yourVersion = "1.0.0.0"; 

Task("SetVersion") 
    .Does(() => { 
     ReplaceRegexInFiles("./your/AssemblyInfo.cs", 
          "(?<=AssemblyVersion\\(\")(.+?)(?=\"\\))", 
          yourVersion); 
    }); 

Tùy thuộc vào tệp AssemblyInfo của bạn, bạn cũng có thể muốn thay thế các giá trị của AssemblyFileVersion hoặc AssemblyInformationalVersion

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