C# 获取编译时错误CS0579:重复';AssemblyFileVersionAttribute';属性

C# 获取编译时错误CS0579:重复';AssemblyFileVersionAttribute';属性,c#,attributes,duplicates,C#,Attributes,Duplicates,我最近通过Properties->Application->Assembly information按钮向一组C#Project(DLL)添加了一些版权信息。我在一个解决方案中有几个这样的项目。编译后,我收到以下类型的错误消息: 错误CS0579:重复的“XXX”属性 其中“XXX”是我指定的一个属性的名称(例如AssemblyFileVersionAttribute) 通过谷歌搜索,我发现,对于从属性类派生的类,可以通过以下方式允许重复: [System.AttributeUsage(Syst

我最近通过Properties->Application->Assembly information按钮向一组C#Project(DLL)添加了一些版权信息。我在一个解决方案中有几个这样的项目。编译后,我收到以下类型的错误消息:

错误CS0579:重复的“XXX”属性

其中“XXX”是我指定的一个属性的名称(例如AssemblyFileVersionAttribute)

通过谷歌搜索,我发现,对于从属性类派生的类,可以通过以下方式允许重复:

[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=true)]
class NewAttribute : System.Attribute { }
但在我的例子中,我通过properties对话框添加了这些属性,并在AssemblyInfo.cs中为每个项目添加了如下语句:

并且没有任何可以附加任何限定符的手动派生属性类


我如何解决这个重复问题

我认为您已经在项目的属性的集合信息窗口中指定了这些属性。如果执行此操作,请从程序集信息中删除这些属性

通过在.csproj文件中添加此选项,解决了此问题

 <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
        <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
        <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
        <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
  </PropertyGroup>

netcoreapp2.1
假的
假的
假的
假的
正如Bob所建议的,如果不想单独添加它们,可以添加

<GenerateAssemblyInfo>false</GenerateAssemblyInfo>   
false

您是否在项目中对
AssemblyFileVersion
进行了全局搜索?
AssemblyFileVersionAttribute
以整个程序集为目标,因此您可能有多个.cs文件(在同一项目中)您可以在这里看到
AssemblyFileVersionAttribute
拥有的
AttributeUsageAttribute
:感谢它帮助了我很多。您可以简单地添加
false
,而不是单独添加它们。虽然这对我有效,但我不满意这是正确的解决方案。我以前曾将正在处理的程序集从.NET 4.7.2转换为NET标准,并在转换过程中复制了包含AssemblyInfo.cs文件的属性目录。这就是冲突产生的原因,因为Net Standard不需要AssemblyInfo.cs。我删除了属性目录和文件,现在不再收到编译器错误。
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>