Atributo Duplicado de versión de ensamblaje

Resuelto Aamir asked hace 12 años • 34 respuestas

Tengo un proyecto que genera el siguiente error al compilar:

error CS0579: atributo 'AssemblyVersion' duplicado

Revisé el archivo AssemblyInfo.csy parece que no hay duplicados allí.

Encontré este artículo en MSDN que aborda un problema similar y seguir la sugerencia de este artículo también soluciona el problema.

¿Alguien puede decirme qué está pasando aquí? ¿Ocurre sólo en caso de tener dos o más proyectos con clases con nombres similares? ¿O es otra cosa?

Aamir avatar Apr 25 '12 14:04 Aamir
Aceptado

A partir de Visual Studio 2017, otra solución para seguir usando el AssemblyInfo.csarchivo es desactivar la generación automática de información de ensamblaje como esta:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  </PropertyGroup>
</Project>

Personalmente, lo encuentro muy útil para proyectos que necesitan ser compatibles con .NET Framework y .NET Standard.

Serge Semenov avatar Jun 12 '2017 15:06 Serge Semenov

También me encontré con este problema en el pasado, por lo que asumiré que su proceso de compilación proporciona información de ensamblaje por separado para proporcionar control de versiones. Y eso provoca una duplicación ya que su proyecto también tiene esa información en el AssemblyInfo.csarchivo. Así que elimine el archivo y creo que debería funcionar.

luqi avatar Apr 25 '2012 09:04 luqi

En mi caso, había una subcarpeta en un proyecto que era una carpeta de proyecto en sí misma:

  • sistema de archivos:

    • c:\proyectos\webapi\wepapi.csproj
    • c:\proyectos\webapi\tests\wepapitests.csproj
  • solución

    • webapi (carpeta y proyecto)
      • pruebas (carpeta)
  • pruebas (carpeta y proyecto)

Luego tuve que eliminar la subcarpeta "pruebas" del proyecto "webapi".

EDITAR 2022: Para ser más claro, como @bobt mencionó en los comentarios, por "eliminar" quise decir: hacer clic derecho en la carpeta "pruebas" dentro de webapi y elegir la opción "excluir del proyecto".

heringer avatar Dec 12 '2017 12:12 heringer

Al convertir un proyecto anterior a .NET Core, la mayor parte de la información que estaba en AssemblyInfo.cs ahora se puede configurar en el proyecto mismo. Abra las propiedades del proyecto y seleccione la pestaña Paquete para ver la nueva configuración.

La publicación de Eric L. Anderson "Duplicar atributo 'System.Reflection.AssemblyCompanyAttribute'" describe 3 opciones:

  • eliminar los elementos en conflicto del archivo AssemblyInfo.cs,
  • eliminar completamente el archivo o
  • deshabilite GenerateAssemblyInfo (como se sugiere en otra respuesta de Serge Semenov )
Michael Freidgeim avatar Sep 07 '2017 11:09 Michael Freidgeim

Tuve el mismo error y estaba subrayando la versión de ensamblaje y la versión del archivo de ensamblaje, así que al leer la respuesta de Luqi, simplemente los agregué como comentarios y el error se resolvió.

// AssemblyVersion is the CLR version. Change this only when making breaking    changes
//[assembly: AssemblyVersion("3.1.*")]
// AssemblyFileVersion should ideally be changed with each build, and should help identify the origin of a build
//[assembly: AssemblyFileVersion("3.1.0.0")]
Pantelitsa Mavrovounioti avatar Jun 25 '2015 21:06 Pantelitsa Mavrovounioti