【发布时间】:2025-11-22 05:15:02
【问题描述】:
我正在使用 FAKE 的“CreateCSharpAssemblyInfo”函数来更新 AssemblyInfo.cs。 但我收到错误,即
2) CS0579: Properties\AssemblyInfo.cs: Duplicate 'AssemblyProductAttribute' attribute
3) CS0579: Properties\AssemblyInfo.cs: Duplicate 'AssemblyCompanyAttribute' attribute
4) CS0579: Properties\AssemblyInfo.cs: Duplicate 'AssemblyCopyrightAttribute' attribute
5) CS0579: Properties\AssemblyInfo.cs: Duplicate 'AssemblyVersionAttribute' attribute
6) CS0579: Properties\AssemblyInfo.cs: Duplicate 'AssemblyFileVersionAttribute' attribute
这是我正在使用的代码:
let assemblyInfo = [
Attribute.Title "My Project"
Attribute.Product "My Product"
Attribute.Company "XYZ"
Attribute.Copyright "Copyright XYZ"
Attribute.Version "14.8"
Attribute.FileVersion "13.9"
]
Target "BuildApp" (fun _ ->
CreateCSharpAssemblyInfo "./Source Code/Project/Properties/AssemblyInfo.cs" assemblyInfo
!! "/Source Code/Project.sln"
|> MSBuildReleaseExt buildDir [("SolutionDir", currentPath @@ "\BuildTools")] "Build"
|> Log "AppBuild-Output:"
)
我没有得到这个错误的原因。
我是 FAKE 的新手,没有太多使用 F#,如果这很明显,请原谅我。
如果有人可以提供帮助,那将是非常有帮助的。
【问题讨论】:
-
CreateCSharpAssemblyInfo没有抛出错误,MSBuild 是。一旦失败,在 VS 中打开解决方案并在那里构建 - 它也会失败。您应该能够找到问题所在 - 例如,您可能在项目引用的另一个文件中定义了这些属性。 -
dotnet core 会自动为您生成这些程序集属性,这与 FAKE 中的属性冲突
-
@Charles Mager:它并没有从 VS 失败。
-
@Foole:是的,我想这可能是这个原因,那么有什么解决办法吗?
-
@johnfernandes 有几个选项 - 将属性值添加到您的项目文件中,将它们指定为 MSBuild 参数,或禁用属性生成(我无法做到最后一个)