137 votes

Les éléments «Contenu» en double ont été inclus. Le kit de développement .NET inclut par défaut les éléments 'Contenu' de votre répertoire de projet

Chaque fois que j'ajoute un javascript ou css fichier à mon asp.net projet de base et que j'execute dotnet run dans mon bash terminal, j'obtiens l'erreur suivante:

/usr/share/dotnet/sdk/1.0.1/Sdks/Microsoft.NET.Sdk/build/Microsoft

.NET.Sdk.DefaultItems.cibles(188,5): erreur : Duplicate 'Contenu' les éléments ont été inclus. L' .NET SDK comprend le Contenu des articles de votre répertoire de projet par défaut. Vous pouvez soit supprimer ces éléments de votre fichier de projet, ou de définir la " EnableDefaultContentItems la propriété de 'false' si vous voulez inclure explicitement dans votre fichier de projet. Pour plus d'informations, voir https://aka.ms/sdkimplicititems. L' les doublons ont été: 'wwwroot/css/BasicQuotation.css'; 'wwwroot/js/BasicQuotation.js' [/mnt/c/Dev/monprojet/Monprojet/MyProject.csproj]

La compilation a échoué. S'il vous plaît corriger les erreurs de génération et de courir à nouveau.

Je peux résoudre ce problème en supprimant l' ItemGroup de mon fichier csproj, mais je ne pense pas que ce soit très productif.

Ce qui se passe dans la valeur par défaut de Visual Studio 2017 ASP.NET de Base de l'Application Web (.NET de Base) modèle. J'ai ajouter les fichiers de mon projet en cliquant droit sur l'wwwroot > js dossier, puis sélectionnez Add > New Item > JavaScript File

C'est mon .csproj fichier:

<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>

201voto

Dzhefer Points 1712
1. Click 'Show All Files' in Solution Explorer
2. Right-click over 'wwwroot' select 'Exclude From Project'
3. Right-click over 'wwwroot' select 'Include in Project'

109voto

Pinski Points 1407

Alors j'ai couru dans ce même numéro. Je ne veux pas désactiver DefaultCompileItems parce que je savais que ce ne serait pas "régler" le problème. Donc j'ai déchargé mon projet et a ouvert la .csproj fichier en mode texte dans Visual Studio et vu ce.

<ItemGroup>
    <Content Include="wwwroot\css\custom-bootstrap-navbar.css" />
    <Content Include="wwwroot\images\friends-eating\image1.jpg" />
    <Content Include="wwwroot\images\friends-eating\image2.jpg" />
    <Content Include="wwwroot\images\friends-eating\image3.jpg" />
</ItemGroup>
<ItemGroup>
    <Folder Include="wwwroot\images\friends-eating\" />
</ItemGroup>

Quand j'ai commenté la première ItemGroup bloc, il a travaillé. Ce que je suppose est ce qui se passe est que le projet est l'ajout de l'ensemble de l' \images\amis-alimentation\ dossier, puis l'ajout de chaque image individuelle, provoquant une duplication.

Aussi loin que la coutume de css et de js, le projet ajoute automatiquement wwwroot\css et wwwroot\js donc, si vous avez un fichier ajouté (comme wwwroot\css\custom-bootstrap-barre de navigation.css) ça va compter comme un doublon.

25voto

harveyt Points 150

Cela a fonctionné dans mon cas:

  <PropertyGroup>
    ...
    <EnableDefaultContentItems>false</EnableDefaultContentItems>
  </PropertyGroup>
 

15voto

wtf512 Points 1028

Cela s'est passé lorsque je mets à niveau mon projet de .NET Core 1.X à la version 2.0 tout à l'heure. Voici ma solution.

  • Ouvrez xxx.csproj ou cliquez sur le projet avec le bouton droit de la souris
  • Décharger le projet
  • Éditez xxx.csproj.

Ensuite, supprimez les éléments ItemGroup qui commencent par <Content Include = "wwwroot\xxxxx"

10voto

Grandizer Points 316

Mes questions était proche, mais pas exactement les mêmes. Mon erreur a été ceci:

C:\Program Files\dotnet\sdk\2.0.0-preview2-006497\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.DefaultItems.targets(285,5): erreur : Duplicate 'Contenu' éléments ont été inclus. L' .NET SDK comprend le "Contenu" des éléments à partir de votre répertoire de projet par défaut. Vous pouvez soit supprimer ces éléments de votre fichier de projet, ou de définir la "EnableDefaultContentItems' propriété 'false' si vous voulez inclure explicitement dans votre fichier de projet. Pour plus d'informations, voir https://aka.ms/sdkimplicititems. Les éléments en double étaient les suivantes: wwwroot\js\KOBindings.js'; 'wwwroot\js\KOPleaseWait.js'; 'wwwroot\js\ProjectTime\Add.js'; 'wwwroot\js\TimeAdmin\Invoice.js'; 'wwwroot\js\TimeAdmin\PayPeriodTotals.js' [C:\Avantia les Projets\Carte de Temps\avantia-feuille de temps\Solution\Almanach\Almanach.csproj]

Si j'avais fait ceci:

<EnableDefaultContentItems>false</EnableDefaultContentItems>

Il ne serait pas compiler que tout d'un coup, Areas ne serait pas reconnu.

Ma solution, qui semble étrange, mais le message me dit donc, il y avait des fichiers en double:

Les éléments en double étaient les suivantes: wwwroot\js\KOBindings.js'; 'wwwroot\js\KOPleaseWait.js'; 'wwwroot\js\ProjectTime\Add.js'; 'wwwroot\js\TimeAdmin\Invoice.js'; 'wwwroot\js\TimeAdmin\PayPeriodTotals.js'

En regardant ma .csproj le fichier:

<ItemGroup>
  <Content Include="pdf.js" />
  <Content Include="wwwroot\js\package.json" />
  <Content Include="wwwroot\js\pdf.js" />
  <Content Include="wwwroot\js\KOBindings.js" />
  <Content Include="wwwroot\js\KOPleaseWait.js" />
  <Content Include="wwwroot\js\ProjectTime\Add.js" />
  <Content Include="wwwroot\js\TimeAdmin\Invoice.js" />
  <Content Include="wwwroot\js\TimeAdmin\PayPeriodTotals.js" />
</ItemGroup>

C'était le SEUL endroit au sein de l'ensemble du projet où ces fichiers étaient des références (à côté de l'endroit où ils ont été chargés.) Ainsi, l'expression en double n'a pas de sens pour moi. Cependant, les commentaires de ces fichiers en tant que tel, a pris soin de mon problème:

<ItemGroup>
  <Content Include="pdf.js" />
  <Content Include="wwwroot\js\package.json" />
  <Content Include="wwwroot\js\pdf.js" />
  <!--
    <Content Include="wwwroot\js\KOBindings.js" />
    <Content Include="wwwroot\js\KOPleaseWait.js" />
    <Content Include="wwwroot\js\ProjectTime\Add.js" />
    <Content Include="wwwroot\js\TimeAdmin\Invoice.js" />
    <Content Include="wwwroot\js\TimeAdmin\PayPeriodTotals.js" />
  -->
</ItemGroup>

Je suppose que cela a quelque chose à voir avec l' 2.0.0-preview2-006497 que j'ai installé récemment.

Aussi, ce lien mentionne parle des globules. Mais ne me dites pas où c'est. Il parle des Kits de développement logiciel et. Pourtant, la réponse était mon personnalisée .js fichiers. Ce lien doit être mis à jour ou développé à mon humble avis. Espérons que cela aide quelqu'un.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X