获取编译时错误CS0579:复制'AssemblyFileVersionAttribute'属性

12 c# attributes duplicates

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

错误CS0579:复制'XXX'属性

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

谷歌搜索我发现,在从Attribute类派生的类的情况下,可以使用以下方法允许重复:

[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=true)]
class NewAttribute : System.Attribute { }
Run Code Online (Sandbox Code Playgroud)

但就我而言,我已经通过属性对话框添加了这些属性并且有语句(在每个项目的AssemblyInfo.cs中),例如:

[assembly: AssemblyCompanyAttribute("My Company")]
[assembly: AssemblyProductAttribute("My Product")]
[assembly: AssemblyCopyrightAttribute("© 2012 My Company, All Rights Reserved.")]
[assembly: AssemblyVersionAttribute("13.0.0.0")]
[assembly: AssemblyFileVersionAttribute("1.0.0.0")]
Run Code Online (Sandbox Code Playgroud)

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

如何解决此重复问题?

ris*_*2m8 16

我认为您已经在Project Properties的Assembly Information窗口中指定了这些属性.如果您这样做,请从程序集信息中删除这些属性.


小智 15

通过在 .csproj 文件中添加它解决了这个问题

 <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
        <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
        <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
        <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

正如鲍勃所建议的,如果您不想单独添加它们,则可以添加

<GenerateAssemblyInfo>false</GenerateAssemblyInfo>   
Run Code Online (Sandbox Code Playgroud)

<PropertyGroup>.

  • 您无需单独添加它们,只需添加 `&lt;GenerateAssemblyInfo&gt;false&lt;/GenerateAssemblyInfo&gt;` (3认同)