Chaque fois que j'ajoute un fichier javascript ou css à mon projet principal asp.net et que j'exécute dotnet run
dans mon terminal bash, j'obtiens l'erreur suivante:
/usr/share/dotnet/sdk/1.0.1/Sdks/Microsoft.NET.Sdk/build/Microsoft
.NET.Sdk.DefaultItems.targets (188,5): erreur: des éléments "Contenu" en double ont été inclus. Le Kit de développement logiciel (SDK) .NET inclut par défaut les éléments «Contenu» de votre répertoire de projet. Vous pouvez soit supprimer ces éléments de votre fichier projet, soit définir la propriété «EnableDefaultContentItems» sur «false» si vous souhaitez les inclure explicitement dans votre fichier projet. Pour plus d'informations, consultez https://aka.ms/sdkimplicititems . Les éléments en double étaient: 'wwwroot / css / BasicQuotation.css'; 'wwwroot / js / BasicQuotation.js' [/mnt/c/Dev/myproject/MyProject/MyProject.csproj]
La construction a échoué. Veuillez corriger les erreurs de construction et réexécuter.
Je peux résoudre ce problème en supprimant le ItemGroup
de mon fichier csproj, mais je ne pense pas que ce soit très productif.
Cela se produit dans le modèle d'application Web ASP.NET Core (.NET Core) Visual Studio 2017 par défaut. J'ajoute les fichiers à mon projet en faisant un clic droit sur le dossier wwwroot> js puis en sélectionnantAdd > New Item > JavaScript File
Voici mon fichier .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>
Réponses:
J'ai donc rencontré le même problème. Je ne voulais pas désactiver DefaultCompileItems parce que je savais que cela ne "résoudrait" pas le problème. J'ai donc déchargé mon projet et ouvert le fichier .csproj en mode texte dans Visual Studio et j'ai vu cela.
Quand j'ai commenté le premier bloc ItemGroup, cela a fonctionné. Ce que je suppose, c'est que le projet ajoute le dossier entier \ images \ friends-eating \ puis ajoute chaque image individuelle, provoquant une duplication.
En ce qui concerne les css et js personnalisés, le projet ajoute automatiquement wwwroot \ css et wwwroot \ js, donc si vous avez un fichier individuel ajouté (comme wwwroot \ css \ custom-bootstrap-navbar.css), il comptera comme un doublon.
la source
<Folder Include="wwwroot\" />
fonctionne pour moi, mais Visual Studio annule cela plus tard :(la source
Cela a fonctionné dans mon cas:
la source
Cela s'est produit lorsque j'ai mis à niveau mon projet de .NET Core 1.X vers 2.0 tout à l'heure. Voici ma solution.
Ensuite, supprimez les éléments ItemGroup commençant par
<Content Include = "wwwroot\xxxxx"
la source
Mes problèmes étaient proches mais pas exactement les mêmes. Mon erreur était la suivante:
Si j'ai fait ça:
Il ne serait pas compilé car tout d'un coup,
Areas
il ne serait pas reconnu.Ma solution, semble étrange, mais le message me le dit, il y avait des fichiers en double:
En regardant mon
.csproj
dossier:C'était le SEUL emplacement dans l'ensemble du projet où ces fichiers étaient des références (en dehors de l'endroit où ils ont été chargés.) Donc, la phrase duplicate n'a aucun sens pour moi. Cependant, commenter ces fichiers en tant que tels, a résolu mon problème:
Je suppose que cela a quelque chose à voir avec le
2.0.0-preview2-006497
que j'ai récemment installé.En outre, ce lien mentionne des discussions sur les globs. Mais ne me dit pas où c'est. Il parle de SDK et autres. Pourtant, la réponse était mes
.js
fichiers personnalisés . Ce lien doit être mis à jour ou développé sur IMHO. J'espère que cela aide quelqu'un.la source
Comme le lien l'indique , vous pouvez désactiver ce comportement (inclusion automatique) et inclure explicitement tout le contenu en l'ajoutant à votre
csproj
fichier:la source
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.
Dans mon cas, j'ai résolu ce problème en supprimant tous les fichiers du wwwroot-Directory dans VS. Déchargez et rechargez le projet. Copiez tous les fichiers avec VS. Terminé
la source
En fait, le noyau Asp.net inclut automatiquement le contenu de
wwwroot\css\
,wwwroot\js\
et l'wwwroot\lib\
emplacement, donc malgré cela si votrecsproj
fichier inclut explicitement le contenu de ces répertoires alors ceux contenus sera dupliqué afin suppression de contenu vouscsproj
fichier est le meilleur moyen de se débarrasser de cette erreur. Alors supprimez le contenu ci-dessous-la source
<PropertyGroup> <EnableDefaultContentItems>false</EnableDefaultContentItems> </PropertyGroup>
au fichier .csproj.EnableDefaultContentItems
ou non. Ils sont deux approches différentesMon cas, je désactive les deux éléments ci-dessous par défaut.
la source
Non pas que je puisse le voir dans votre exemple ci-dessus, pour aider d'autres chercheurs SO ..
Vous pouvez également obtenir cette erreur lorsque le même fichier est répertorié deux fois dans les
<Content Include="xxx" />
éléments de votrecsproj
fichier.Supprimez le duplicata et reconstruisez.
la source
Sous Visual Studio 2017 15.3, avec .NET Core 2.0, EnableDefaultCompileItems ne fonctionnait pas pour moi.
J'avais besoin d'ajouter ceci à mon .csproj
la source
J'ai trouvé une solution différente.
Et supprimez toutes les balises de contenu dans le fichier csproj si elles existent, un exemple;
Et ajoutez seulement ceci;
Ainsi, le fichier csproj devrait ressembler à ceci;
De cette façon, je pense que vous ajoutez tous les fichiers sous le dossier de thème. Ne les incluez donc pas un par un, ce qui entraîne des erreurs.
la source
Projets .NET Core
Si vous êtes dans une bibliothèque de classes, vous devrez probablement supprimer tous les éléments Compile / Content de votre csproj car ils sont inclus automatiquement.
la source
L'exclusion et l'inclusion des dossiers contenant des doublons ont fonctionné pour moi! J'espère que ceci aide quelqu'un d'autre!
la source
Je pense que la désactivation de "EnableDefaultContentItems" n'est pas la meilleure option. L'
cs-Proj
édition manuelle des fichiers n'est pas du tout la bonne idée.Donc, pour notre pipeline de serveur de construction, nous avons écrit un très petit outil qui supprimera automatiquement toutes les entrées dupliquées: dotnet-csproj-cleaner
Nous l'exécutons sous Docker comme première étape de construction de notre pipeline d'intégration continue.
la source
J'ai eu le même problème avec seulement un fichier, et tous les autres fonctionnaient (tous mes modèles étaient stockés directement dans wwwroot / content). Le projet n'a pas été créé par moi donc je ne connais pas beaucoup de détails.
Le problème a été résolu en renommant le fichier avec le problème:
MyTemplate.html - renommé -> MyTemplate2.html - renommé -> MyTemplate.html
Remarque : Lors du premier changement de nom, j'ai eu une erreur avec quelque chose du genre " configuration du contenu introuvable ", mais le deuxième changement de nom a fonctionné sans problème.
Après cela, j'ai pu compiler le projet avec succès.
la source