2016-11-02 14 views
7

私はケーキビルドの新機能です。私は、cakebuildを使ってassemblyinfo.csのバージョン情報を更新したいと思います。cakeinを使ってassemblyinfo.csのバージョン情報のみを更新するには?

public static void CreateAssemblyInfo()メソッドは、assemblyinfoファイルの内容全体を上書きします。しかし、更新するにはバージョン情報が必要です。

これをどのように達成できますか?

よろしく、 Aradhya

答えて

7

は2つのファイル、静的なもののための1のビットを自動生成のための1つを持っています。

私が通常適用するパターンは、プロジェクト間で共有されるSolutionInfo.csと、プロジェクトごとに一意のプロジェクトあたりAssemblyInfo.csを持つことです。

例のフォルダ構造は

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

そして、基本的にあなたのcsprojファイルである可能性だろう代わりに:あなたは任意のマニュアルを保つこの方法

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

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

ようなものになりますAssemblyInfo.csに編集し、安全に自動的に生成することができます情報

これにより、ソリューション内のプロジェクト間でバージョン/著作権/企業などの情報を共有することもできます。あなたが別のファイルを持ってしたくない場合は

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

あなたも置き換える正規表現を使用することができます:

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

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

を依存

このケーキビルド・スクリプトの一部は、このようになりますAssemblyInfoファイルの値をAssemblyFileVersionまたはAssemblyInformationalVersion

に置き換えることもできます
関連する問題