Sempre que adiciono um arquivo javascript ou css ao meu projeto principal do asp.net e executo dotnet run
no meu terminal bash, recebo o seguinte erro:
/usr/share/dotnet/sdk/1.0.1/Sdks/Microsoft.NET.Sdk/build/Microsoft
.NET.Sdk.DefaultItems.targets (188,5): erro: itens duplicados 'Conteúdo' foram incluídos. O .NET SDK inclui itens de 'Conteúdo' do diretório do projeto por padrão. Você pode remover esses itens do arquivo de projeto ou definir a propriedade 'EnableDefaultContentItems' como 'false' se desejar incluí-los explicitamente no arquivo de projeto. Para mais informações, consulte https://aka.ms/sdkimplicitititems . Os itens duplicados foram: 'wwwroot / css / BasicQuotation.css'; 'wwwroot / js / BasicQuotation.js' [/mnt/c/Dev/myproject/MyProject/MyProject.csproj]
A construção falhou. Corrija os erros de compilação e execute novamente.
Eu posso corrigir isso removendo o ItemGroup
arquivo csproj, mas não acho que seja muito produtivo.
Isso acontece no modelo padrão do aplicativo Web ASP.NET Core do Visual Studio 2017 (.NET Core). Para adicionar os arquivos ao meu projeto, clique com o botão direito do mouse na pasta wwwroot> js e selecioneAdd > New Item > JavaScript File
Este é o meu arquivo .csproj:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
<PropertyGroup>
<PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
</PropertyGroup>
<PropertyGroup>
<UserSecretsId>aspnet-MyProject-7e1906d8-5dbd-469a-b237-d7a563081253</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<Compile Remove="wwwroot\lib\jquery-validation\**" />
<Content Remove="wwwroot\lib\jquery-validation\**" />
<EmbeddedResource Remove="wwwroot\lib\jquery-validation\**" />
<None Remove="wwwroot\lib\jquery-validation\**" />
</ItemGroup>
<ItemGroup>
<Content Include="wwwroot\css\BasicQuotation.css" />
<Content Include="wwwroot\js\BasicQuotation.js" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="1.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" PrivateAssets="All" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.1" PrivateAssets="All" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.0" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="1.0.0" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" />
</ItemGroup>
<ItemGroup>
<Folder Include="Data\Commands\" />
<Folder Include="Data\Queries\" />
<Folder Include="wwwroot\images\" />
</ItemGroup>
</Project>
Respostas:
Então, eu tive esse mesmo problema. Não queria desativar o DefaultCompileItems porque sabia que isso não "consertaria" o problema. Então, eu descarreguei meu projeto e abri o arquivo .csproj no modo de texto no Visual Studio e vi isso.
Quando comentei o primeiro bloco ItemGroup, ele funcionou. O que eu suponho que esteja acontecendo é que o projeto está adicionando a pasta \ images \ friends-eating \ inteira e, em seguida, adicionando cada imagem individual, causando uma duplicação.
Quanto aos css e js personalizados, o projeto adiciona automaticamente wwwroot \ css e wwwroot \ js; portanto, se você tiver um arquivo individual adicionado (como wwwroot \ css \ custom-bootstrap-navbar.css), ele contará como duplicado.
fonte
<Folder Include="wwwroot\" />
obras para mim, mas visual studio desfazer que mais tarde :(fonte
Isso funcionou no meu caso:
fonte
Aconteceu quando eu atualizei meu projeto do .NET Core 1.X para 2.0 agora. Aqui está a minha solução.
Em seguida, remova os itens do ItemGroup começando com
<Content Include = "wwwroot\xxxxx"
fonte
Meus problemas estavam próximos, mas não exatamente o mesmo. Meu erro foi este:
Se eu fizesse isso:
Não seria compilado, pois de repente
Areas
não seria reconhecido.Minha solução parece estranha, mas a mensagem está me dizendo isso, havia arquivos duplicados:
Olhando para o meu
.csproj
arquivo:Este era o único local dentro de todo o projeto em que esses arquivos eram referências (além de onde eles foram carregados.) Portanto, a frase duplicado não faz sentido para mim. No entanto, ao comentar esses arquivos, o problema foi resolvido:
Presumo que isso tenha algo a ver com o
2.0.0-preview2-006497
que eu instalei recentemente.Além disso, este link menciona conversas sobre globs. Mas não me diz onde é isso. Ele fala sobre SDKs e coisas assim. No entanto, a resposta foram meus
.js
arquivos personalizados . Esse link precisa ser atualizado ou expandido no IMHO. Espero que isso ajude alguém.fonte
Como o link diz , você pode desativar esse comportamento (incluir automaticamente) e incluir todo o conteúdo explicitamente adicionando isso ao seu
csproj
arquivo:fonte
CSC : error CS5001: Program does not contain a static 'Main' method suitable for an entry point [/mnt/c/Dev/myproject/MyProject/MyProject.csproj] The build failed. Please fix the build errors and run again.
No meu caso, resolvi isso excluindo todos os arquivos do wwwroot-Directory no VS. Descarregue e recarregue o projeto. Copie todos os arquivos novamente com o VS. Feito
fonte
Na verdade, Asp.net núcleo incluir automaticamente o conteúdo de
wwwroot\css\
,wwwroot\js\
ewwwroot\lib\
localização, por isso, apesar disso, se o seucsproj
arquivo de incluir explicitamente o conteúdo dessas listas, em seguida, os conteúdos serão duplicados de modo a remoção de conteúdo de vocêcsproj
arquivo é a melhor maneira de se livrar deste erro. Portanto, remova o conteúdo abaixofonte
<PropertyGroup> <EnableDefaultContentItems>false</EnableDefaultContentItems> </PropertyGroup>
ao arquivo .csproj.EnableDefaultContentItems
ou não. Eles são dois abordagem diferenteMeu caso é desativar os dois itens abaixo padrão.
fonte
Não que eu possa vê-lo no seu exemplo acima, para ajudar outros pesquisadores de SO ..
Você também pode obter esse erro quando tiver o mesmo arquivo listado duas vezes em
<Content Include="xxx" />
elementos em seucsproj
arquivo.Remova a duplicata e reconstrua.
fonte
No Visual Studio 2017 15.3, com o .NET Core 2.0, EnableDefaultCompileItems não funcionou para mim.
Eu precisava adicionar isso ao meu .csproj
fonte
Encontrei uma solução adequada diferente.
E exclua todas as tags de conteúdo no arquivo csproj, se existirem, um exemplo;
E apenas adicione isso;
Portanto, o arquivo csproj deve ficar assim;
Dessa forma, acho que você está adicionando todos os arquivos na pasta do tema. Portanto, não os inclua um por um, que ocorre alguns erros.
fonte
Projetos principais do .NET
Se você estiver em uma biblioteca de classes, provavelmente precisará remover todos os elementos de Compilação / Conteúdo do seu csproj, pois eles são incluídos automaticamente.
fonte
Excluir e incluir as pastas com erro duplicado funcionou para mim! Espero que isso ajude alguém!
fonte
Acho que desativar "EnableDefaultContentItems" não é a melhor opção. A
cs-Proj
edição manual de arquivos também não é uma boa ideia.Portanto, para o nosso pipeline de servidor de compilação, escrevemos uma ferramenta muito pequena que removerá todas as entradas duplicadas automaticamente: dotnet-csproj-cleaner
Nós o executamos no Docker como a primeira etapa de compilação em nosso pipeline de integração contínua.
fonte
Eu tive o mesmo problema com apenas um arquivo e todos os outros estavam funcionando (todos os meus modelos foram armazenados diretamente em wwwroot / content). O projeto não foi criado por mim, portanto não conheço muitos detalhes.
O problema foi corrigido renomeando o arquivo com o problema:
MyTemplate.html - renomeado -> MyTemplate2.html - renomeado -> MyTemplate.html
Nota : Na primeira renomeação, ocorreu um erro com algo como " configuração de conteúdo não encontrada ", mas a segunda renomeação funcionou sem problemas.
Depois disso, consegui compilar o projeto com sucesso.
fonte