我对cakebuild非常陌生。我想用cakebuild更新assemblyinfo.cs的版本信息。
public static void CreateAssemblyInfo()方法将覆盖assemblyinfo文件的全部内容。但我只需要更新版本信息。
我怎样才能做到这一点呢?
你好,阿拉迪亚
发布于 2017-08-01 03:39:56
如果你不想有单独的文件,你也可以使用regex替换:
#addin "Cake.FileHelpers"
var yourVersion = "1.0.0.0";
Task("SetVersion")
.Does(() => {
ReplaceRegexInFiles("./your/AssemblyInfo.cs",
"(?<=AssemblyVersion\\(\")(.+?)(?=\"\\))",
yourVersion);
});根据您的AssemblyInfo文件,您可能还希望替换AssemblyFileVersion或AssemblyInformationalVersion的值
发布于 2016-11-02 21:38:17
有两个文件,一个是静态文件,另一个是自动生成的bits。
我通常采用的模式是在项目之间共享一个SolutionInfo.cs,每个项目有一个AssemblyInfo.cs,每个项目都是唯一的。
文件夹结构的示例可以是
src
| Solution.sln
| SolutionInfo.cs
|
\--- Project
| Project.csproj
|
\---Properties
AssemblyInfo.cs基本上,您的csproj文件将不是:
<Compile Include="Properties\AssemblyInfo.cs" />应该是这样的:
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="..\SolutionInfo.cs">
<Link>Properties\SolutionInfo.cs</Link>
</Compile>这样,您可以保留对AssemblyInfo.cs的任何手动编辑,并且可以安全地自动生成,而不会有覆盖该信息的风险。
这还允许您在解决方案中的项目之间共享版本/版权/公司等内容。
其中的Cake构建脚本部分如下所示:
Task("SolutionInfo")
.IsDependentOn("Clean")
.IsDependentOn("Restore")
.Does(() =>
{
var file = "./src/SolutionInfo.cs";
CreateAssemblyInfo(file, assemblyInfo);
});https://stackoverflow.com/questions/40381310
复制相似问题