私はケーキビルドの新機能です。私は、cakebuildを使ってassemblyinfo.csのバージョン情報を更新したいと思います。cakeinを使ってassemblyinfo.csのバージョン情報のみを更新するには?
public static void CreateAssemblyInfo()メソッドは、assemblyinfoファイルの内容全体を上書きします。しかし、更新するにはバージョン情報が必要です。
これをどのように達成できますか?
よろしく、 Aradhya
私はケーキビルドの新機能です。私は、cakebuildを使ってassemblyinfo.csのバージョン情報を更新したいと思います。cakeinを使ってassemblyinfo.csのバージョン情報のみを更新するには?
public static void CreateAssemblyInfo()メソッドは、assemblyinfoファイルの内容全体を上書きします。しかし、更新するにはバージョン情報が必要です。
これをどのように達成できますか?
よろしく、 Aradhya
は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);
});
あなたも置き換える正規表現を使用することができます:
#addin "Cake.FileHelpers"
var yourVersion = "1.0.0.0";
Task("SetVersion")
.Does(() => {
ReplaceRegexInFiles("./your/AssemblyInfo.cs",
"(?<=AssemblyVersion\\(\")(.+?)(?=\"\\))",
yourVersion);
});
を依存
このケーキビルド・スクリプトの一部は、このようになりますAssemblyInfoファイルの値をAssemblyFileVersion
またはAssemblyInformationalVersion