Eu tenho um projeto que gera o seguinte erro na compilação:
erro CS0579: atributo 'AssemblyVersion' duplicado
Eu verifiquei o arquivo AssemblyInfo.cs
e parece que não há duplicação lá.
Encontrei este artigo no MSDN que aborda um problema semelhante e, seguindo a sugestão deste artigo, também corrige o problema.
Alguém pode me dizer o que está acontecendo aqui? Isso acontece apenas no caso de ter dois ou mais projetos com classes com nomes semelhantes? Ou é outra coisa?
c#
compiler-errors
Aamir
fonte
fonte
Respostas:
Também já deparei com esse problema no passado, portanto, assumirei que seu processo de compilação fornece informações de montagem separadamente para fornecer versão. E isso causa uma duplicação, pois seu projeto também possui essas informações no
AssemblyInfo.cs
arquivo. Portanto, remova o arquivo e acho que deve funcionar.fonte
A partir do Visual Studio 2017, outra solução para continuar usando o
AssemblyInfo.cs
arquivo é desativar a geração automática de informações de montagem como esta:Pessoalmente, acho muito útil para projetos que precisam oferecer suporte ao .NET Framework e ao .NET Standard.
fonte
.csproj
arquivo usando suas páginas de propriedades (Aplicação, construir, criar eventos, etc.), oPropertyGroup
com asGenerateAssemblyInfo
desaparece :-(Eu tive o mesmo erro e estava sublinhando a versão do Assembly Vesrion e do arquivo de montagem. Portanto, ao ler a resposta Luqi, apenas as adicionei como comentários e o erro foi resolvido
fonte
Ao converter um projeto mais antigo para o .NET Core, a maioria das informações contidas no AssemblyInfo.cs agora pode ser definida no próprio projeto. Abra as propriedades do projeto e selecione a guia Pacote para ver as novas configurações.
A postagem de Eric L. Anderson "Atributo 'Duplicar' System.Reflection.AssemblyCompanyAttribute '" descreve 3 opções:
fonte
.csproj
), porque são metadados em vez de código que descrevem a lógica real. Espero que no futuro tudo possa ser especificado no projeto! (Atualmente eu não pode especificar a visibilidade COM, assim que eu deixá-lo emAssemblyInfo.cs
.)No meu caso, alguns arquivos * .cs temporários gerados durante a compilação foram adicionados acidentalmente ao projeto.
Os arquivos eram do
obj\Debug
diretório, então eles definitivamente não deveriam ter sido adicionados à solução. Um*.cs
curinga ficou um pouco louco e os adicionou incorretamente.A exclusão desses arquivos corrigiu o problema.
fonte
No meu caso, havia uma subpasta em um projeto que era uma pasta de projeto:
sistema de arquivo:
solução
Então eu tive que remover a subpasta "testes" do projeto "webapi".
fonte
Para mim, foi que AssembyInfo.cs e SolutionInfo.cs tinham valores diferentes. Portanto, verifique esses arquivos também. Acabei de remover a versão de um deles.
fonte
Meu erro ocorreu porque, de alguma forma, havia uma pasta obj criada dentro da minha pasta de controladores. Basta fazer uma pesquisa no seu aplicativo por uma linha dentro do Assemblyinfo.cs. Pode haver uma duplicata em algum lugar.
fonte
Isso normalmente acontece comigo se eu compilei o projeto no Visual Studio 2017 e, em seguida, tento reconstruir e executá-lo com o .NET Core com o comando de linha de comando "dotnet run".
Simplesmente excluir todas as pastas "bin" e "obj" - tanto dentro do "ClientApp" quanto diretamente na pasta do projeto - permitiu que o comando do .NET Core "dotnet run" fosse reconstruído e executado com êxito.
fonte
Já deve haver um arquivo AssemblyInfo.cs no projeto aqui:
Para resolver: - Exclua qualquer um AssemblyInfo.cs
fonte
Outra solução ao atualizar o núcleo para o VS2017 é removê-los no arquivo properties \ assemblyinfo.cs.
Uma vez que agora eles são armazenados no projeto.
fonte
Encontrei esta resposta no msdn, que explica a marcação do arquivo como Conteúdo e, em seguida, Copiar para saída = Se for mais recente. Veja o artigo abaixo:
https://social.msdn.microsoft.com/Forums/en-US/8671bdff-9b16-4b49-ba9e-227cc4df31b2/compile-error-cs0579-duplicate-assemblyversion-attribute?forum=vsgatk
GH
fonte
Me deparei com o mesmo quando tentei adicionar a ferramenta GitVersion para atualizar minha versão no AssemblyInfo.cs. Use o projeto VS2017 e .NET Core. Então eu apenas misturei os dois mundos. Meu AssemblyInfo.cs contém apenas informações de versão que foram geradas pela ferramenta GitVersion, meu csproj contém o restante das coisas. Observe que eu não uso,
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
eu uso atributos relacionados apenas à versão (veja abaixo). Mais detalhes aqui Propriedades do AssemblyInfo .AssemblyInfo.cs
my.csproj contém todos relacionados a outros atributos assemblyu:
fonte
Eu tive esse problema quando meu projeto principal estava na mesma pasta que a solução, então eu tinha um projeto separado na mesma solução, localizado em uma subpasta, e esse projeto separado usou o projeto principal como referência. Isso fez com que o projeto principal detectasse a subpasta bin & obj, que criava referências duplicadas.
fonte
Meu erro foi que eu também estava referenciando outro arquivo no meu projeto, que também continha um valor para o atributo "AssemblyVersion". Eu removi esse atributo de um dos arquivos e agora está funcionando corretamente.
A chave é garantir que esse valor não seja declarado mais de uma vez em qualquer arquivo no seu projeto.
fonte
Edite você AssemblyInfo.cs e #if! NETCOREAPP3_0 ... #endif
fonte
Eu recebi esse erro quando coloquei 2 projetos no mesmo diretório. Se eu tiver um diretório com uma solução e colocar um diretório Web e Dados separado, ele será compilado corretamente.
fonte
Se você estiver enfrentando esse problema em um Pipeline de Compilação no Azure DevOps, tente colocar a Ação de Compilação como "Conteúdo" e Copiar no Diretório de Saída igual a "Copiar se mais recente" nas propriedades do arquivo AssembyInfo.cs.
fonte
Eu acredito que minha pasta Biblioteca foi corrompida por uma criação inadvertida de outra biblioteca de classes. Excluí a biblioteca de todos os arquivos associados, mas o problema persistiu. Encontrei uma solução alternativa ao excluir TODAS as pastas bin e obj no diretório. A compilação estava ok anteriormente, mas encontrou uma subpasta que tinha o mesmo arquivo assemblyinfo.cs.
fonte
Esse problema é um conflito de referência que é principalmente peculiar ao VS 2017.
Resolvi esse mesmo erro simplesmente comentando as linhas 7 a 14 e os códigos de versão do Assembly na parte inferior da página em AssemblyInfo.cs
Ele removeu todas as referências duplicadas e o projeto foi capaz de construir novamente.
fonte