Cake GetVersion - 重复 'AssemblyInformationalVersion' 属性

The Cake GetVersion - Duplicate 'AssemblyInformationalVersion' attribute

由于某种原因,在 cakebuild.net 任务执行期间有一个 error

错误的根本原因是UpdateAssemblyInfo = true 属性。看起来属性重复发生了。

但不清楚为什么会发生在我身上。你能不能透露一下这种行为

先决条件:

错误:

Properties\AssemblyInfo.cs(41,12):错误 CS0579:重复 'AssemblyInformationalVersion' 属性

For SDK style projects AssemblyInfo 将始终生成(除非设置了 <GenerateAssemblyInfo>false</GenerateAssemblyInfo>)。生成的 AssemblyInfo 将包含一些版本信息,无论您是否明确设置 <AssemblyInformationalVersion>

因此:在 GitVersion 中设置 UpdateAssemblyInfo=true 会创建一个 AssemblyInfo,您的 csproj 也会创建一个。因此,错误。

您可以做什么:获取版本并相应地设置构建属性,因此生成的 AssemblyInfo 包含您想要的信息。

Task("Build")
.Does(() => {
   // get version
   var gitVersion = GitVersion();
   var version = gitVersion.SemVer; // or something other...
   Information($"Building version: {version}");

   // add version to settings
   var settings = new DotNetBuildSettings();
   settings.MSBuildSettings = new DotNetCoreMSBuildSettings();
   settings.MSBuildSettings.Properties.Add("AssemblyVersion", new[] { version });
   settings.MSBuildSettings.Properties.Add("AssemblyFileVersion", new[] { version });
   settings.MSBuildSettings.Properties.Add("AssemblyInformationalVersion", new [] { version });
   settings.MSBuildSettings.Properties.Add("Version", new [] { version });

   // build
   DotNetBuild("./console/console.csproj", settings);
});