Cake GetVersion - 重复 'AssemblyInformationalVersion' 属性
The Cake GetVersion - Duplicate 'AssemblyInformationalVersion' attribute
由于某种原因,在 cakebuild.net 任务执行期间有一个 error。
错误的根本原因是UpdateAssemblyInfo = true
属性。看起来属性重复发生了。
但不清楚为什么会发生在我身上。你能不能透露一下这种行为
先决条件:
网络 4.7.2
.csproj
中没有 AssemblyInformationalVersion 属性
Properties\AssemblyInfo
中没有 AssemblyInformationalVersion 属性
var gitVersion = GitVersion(new GitVersionSettings
{
OutputType = GitVersionOutput.Json,
NoFetch = false,
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);
});
由于某种原因,在 cakebuild.net 任务执行期间有一个 error。
错误的根本原因是UpdateAssemblyInfo = true
属性。看起来属性重复发生了。
但不清楚为什么会发生在我身上。你能不能透露一下这种行为
先决条件:
网络 4.7.2
.csproj
中没有 AssemblyInformationalVersion 属性Properties\AssemblyInfo
中没有 AssemblyInformationalVersion 属性var gitVersion = GitVersion(new GitVersionSettings { OutputType = GitVersionOutput.Json, NoFetch = false, 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);
});