Были включены повторяющиеся элементы "содержание". The.NET SDK по умолчанию включает элементы "содержимое" из каталога проекта

всякий раз, когда я добавляю файл javascript или css в мой asp.net основной проект и я выполняю dotnet run в моем терминале bash, я получаю следующую ошибку:

/usr/доли/dotnet ограничителя/СДК/1.0.1/пакеты SDK/Майкрософт.Чистая.СДК/построить/ПО Microsoft

.Сеть.Sdk.Дефолт.цели (188,5): ошибка: дублирование "содержимого" пункты были включены. .NET SDK включает элементы "содержимого" из вашего каталог проекта по умолчанию. Вы можете либо удалить эти элементы из файл проекта или задайте для свойства 'EnableDefaultContentItems' значение "false", если вы хотите явно включить их в файл проекта. Дополнительные сведения см. В разделеhttps://aka.ms/sdkimplicititems. В повторяющиеся элементы были: "wwwroot / css / BasicQuotation.Усс'; 'wwwroot / js / BasicQuotation.Яш' [/тугриков/с устройством/dev/мой проект/Мой проект/Мой проект.csproj файл]

сборка не удалась. Исправьте ошибки сборки и запустите снова.

Я могу исправить это путем удаления ItemGroup от мой файл csproj, но я не думаю, что это очень продуктивно.

это происходит в Visual Studio 2017 по умолчанию ASP.NET шаблон основного веб-приложения (.NET Core). Я добавляю файлы в свой проект, щелкнув правой кнопкой мыши папку wwwroot > js, а затем выберите Add > New Item > JavaScript File

Это моя .файл 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="wwwrootlibjquery-validation**" />
    <Content Remove="wwwrootlibjquery-validation**" />
    <EmbeddedResource Remove="wwwrootlibjquery-validation**" />
    <None Remove="wwwrootlibjquery-validation**" />
  </ItemGroup>

  <ItemGroup>
    <Content Include="wwwrootcssBasicQuotation.css" />
    <Content Include="wwwrootjsBasicQuotation.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="DataCommands" />
    <Folder Include="DataQueries" />
    <Folder Include="wwwrootimages" />
  </ItemGroup>

</Project>

15 ответов


Так я столкнулся с этой же проблемой. Я не хотел отключать DefaultCompileItems, потому что знал, что это не "исправит" проблему. Поэтому я выгрузил свой проект и открыл его .файл csproj в текстовом режиме в Visual Studio и увидел это.

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

когда я прокомментировал первый блок ItemGroup, он работал. Я предполагаю, что проект добавляет всю папку \images\friends-eating\, а затем добавляет каждое отдельное изображение, вызывая дублирование.

что касается пользовательских css и js, проект автоматически добавляет wwwroot\css и wwwroot\js, поэтому, если у вас есть отдельный файл (например, wwwroot\css\custom-bootstrap-navbar.УСБ) это будет считаться дубликатом.


  1. нажмите "Показать все файлы" в обозревателе решений
  2. щелкните правой кнопкой мыши по "wwwroot" выберите "исключить из проекта"
  3. щелкните правой кнопкой мыши по "wwwroot" выберите "Включить в проект"

это сработало в моем случае:

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

это произошло, когда я обновляю свой проект с .NET Core 1.Сейчас от X до 2.0. Вот мое решение.

  • открыть xxx.csproj или щелкните правой кнопкой мыши project
  • Выгрузить Проект
  • редактировать ХХХ.csproj файл.

затем удалите элементы ItemGroup, начните с <Content Include = "wwwroot\xxxxx"


мои проблемы были близки, но не то же самое. Моя ошибка была такова:

C:\Program Files\dotnet\sdk\2.0.0-preview2-006497\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.DefaultItems.targets(285,5): ошибка: были включены повторяющиеся элементы "содержимое". Пакет .NET SDK по умолчанию включает элементы "содержимое" из каталога проекта. Вы можете либо удалить эти элементы из файла проекта, либо задать для свойства 'EnableDefaultContentItems' значение 'false', если вы хотите явно включите их в файл проекта. Дополнительные сведения см. В разделеhttps://aka.ms/sdkimplicititems. Повторяющиеся элементы были: "wwwroot\js\KOBindings.js'; ' wwwroot\js\KOPleaseWait.js'; ' wwwroot\js\ProjectTime\Add.js'; ' wwwroot\js\TimeAdmin\счет-фактура.js'; ' wwwroot\js\TimeAdmin\PayPeriodTotals.js ' [C:\Avantia проекты\Time Card\avantia-расписание\решение\альманах\альманах.csproj файл]

если бы я сделал это:

<EnableDefaultContentItems>false</EnableDefaultContentItems>

он не будет компилироваться как внезапно Areas не будут признаны.

мое решение кажется странным, но сообщение говорит мне об этом, были дубликаты файлов:

повторяющиеся элементы были: 'wwwroot\js\KOBindings.js'; ' wwwroot\js\KOPleaseWait.js'; ' wwwroot\js\ProjectTime\Add.js'; ' wwwroot\js\TimeAdmin\счет-фактура.js'; ' wwwroot\js\TimeAdmin\PayPeriodTotals.js'

глядя на мою :

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

это было единственное место во всем проекте где эти файлы были ссылками (кроме того, где они были загружены.) Итак, фраза дублировать не имеет никакого смысла для меня. Однако, комментируя эти файлы как таковые, позаботился о моей проблеме:

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

Я предполагаю, что это имеет какое-то отношение к 2.0.0-preview2-006497 который я недавно установил.

кроме того, этот ссылке упоминает разговоры о глобусах. Но не говорит мне, где это. Он говорит о SDKs и тому подобное. И все же ответ был моим обычаем. .js файлы. Эта ссылка должна быть обновлена или расширена на IMHO. Надеюсь, это кому-то поможет.


As ссылка, вы можете отключить это поведение (auto-include) и включить все содержимое явно, добавив это в свой :

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

в моем случае я решил это, удалив все файлы из wwwroot-каталога в VS. Выгрузка и перезагрузка проекта. Скопируйте все файлы обратно в игру. Сделал


на самом деле, Asp.net ядро автоматически включает контент из wwwroot\css\ , wwwroot\js\ и wwwroot\lib\ расположение, поэтому, несмотря на это, если ваш csproj файл явно включает контент из этих каталогов, тогда этот контент будет дублироваться, поэтому удаление контента из вас csproj файл-лучший способ избавиться от этой ошибки. Поэтому удалите ниже содержание -

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

не то, чтобы я мог видеть это в вашем примере выше, чтобы помочь другим искателям SO..

вы также можете получить эту ошибку, если у вас один и тот же файл указан дважды в <Content Include="xxx" /> элементов .

удалить дубликаты и восстановить.


в Visual Studio 2017 15.3, с .NET Core 2.0, EnableDefaultCompileItems не работал для меня.

Мне нужно было добавить это к моему .csproj файл

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

Я нашел другое решение.

  1. щелкните правой кнопкой мыши на своем проекте mvc и выберите Редактировать csproj.
  2. если вы добавляете файлы под wwwroot, просто переместите их в папку под wwwroot, скажем, "тема"

и удалите все теги содержимого в файле csproj, если они существуют, например;

<Content Include="wwwroot\theme\favicon.ico" />
<Content Include="wwwroot\theme\fonts\cyrillic-ext400.woff2" />
<Content Include="wwwroot\theme\fonts\cyrillic-ext700.woff2" />

и только добавить это:

  <ItemGroup>
    <Folder Include="wwwroot\theme\" />
  </ItemGroup>

Итак, файл csproj должен выглядеть так;

    <Project Sdk="Microsoft.NET.Sdk.Web">

      <PropertyGroup>
        <TargetFramework>netcoreapp1.1</TargetFramework>
      </PropertyGroup>

      <PropertyGroup>
        <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
      </PropertyGroup>

      <ItemGroup>
        <Folder Include="wwwroot\theme\" />
      </ItemGroup>
      <ItemGroup>
        <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />
...

С кстати, я думаю, что вы добавляете все файлы в папке темы. Так что не включать их по одному, который occours некоторые Омеги.


исключая и включая обратно папки, которые имеют дубликаты ошибка работала для меня! Надеюсь, это поможет кому-то еще!


Я думаю, что отключение "EnableDefaultContentItems" не является лучшим вариантом. Руководство cs-Proj редактирование файлов также не является хорошей идеей.

Итак, для нашего конвейера сервера сборки мы написали очень маленький инструмент, что будет удалить все дублирующие записи автоматически : dotnet-csproj-cleaner

мы запускаем его под Docker в качестве первого шага сборки в нашем конвейере непрерывной интеграции.


.NET Core проекты

Если вы находитесь в библиотеке классов, вероятно, вам нужно будет удалить все элементы компиляции / содержимого из вашего csproj, поскольку они включаются автоматически.

<Project Sdk="Microsoft.NET.Sdk">    
  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>
  <!-- NEEDED -->
  <ItemGroup>
    <ProjectReference />
    <ProjectReference />
  </ItemGroup>
  <!-- NOT NEEDED -->
  <ItemGroup>
   <Compile Include="Models\ExampleClass.cs" />
   <Content ... />
  </ItemGroup>
</Project>

У меня была такая же проблема только с файлом, и все остальные работали (все мои шаблоны хранились непосредственно в wwwroot/content). Проект не был создан мной, поэтому я не знаю многих деталей.

проблема была исправлена переименование и обратно файл с вопросом:

шаблон mytemplate.html -- переименовано --> MyTemplate2.html -- переименовано --> MyTemplate.HTML-код

Примечание: при первом переименовании я получил ошибку с чем-то вдоль линий "Настройки контента не нашел", но второе переименование работало без проблем.

после этого я смог успешно скомпилировать проект.