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


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

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

.Чистая.СДК.DefaultItems.цели(188,5): ошибка : содержимое дубликат'' пункты были включены. Интернет .Чистая SDK включает в себя "содержание" товары из каталог проекта по умолчанию. Вы можете либо удалить эти элементы из ваш файл проекта, или установите свойство 'Enabledefaultcontentems' в 'false', если вы хотите явно включить их в свой файл проекта. Для получения дополнительной информации см. раздел https://aka.ms/sdkimplicititems. В повторяющиеся элементы были: 'wwwroot / css / BasicQuotation.css'; 'wwwroot/js / BasicQuotation.js' [/тугриков/с устройством/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 91

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, это сработало. То, что я предполагаю, что происходит это то, что проект добавляют все \изображения\друзей-ест\ и после добавления каждого изображения, что привело к дублированию.

что касается пользовательских 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, или щелкните правой кнопкой мыши проект
  • Выгрузить Проект
  • редактировать ХХХ.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): ошибка : повторяющиеся элементы "содержание" были включены. Пакет SDK .NET по умолчанию включает элементы "содержимое" из каталога проекта. Вы можете либо удалить эти элементы из файла проекта, либо установить свойство 'Enabledefaultcontentems' в значение 'false', если вы хотите явно включите их в файл проекта. Для получения дополнительной информации см. раздел https://aka.ms/sdkimplicititems. Повторяющиеся элементы были следующими: папки wwwroot\Яш\KOBindings.js'; ' wwwroot\js\KOPleaseWait.js'; ' wwwroot\js\ProjectTime\Add.js'; ' wwwroot\js\TimeAdmin\Invoice.js'; ' wwwroot\js\TimeAdmin\PayPeriodTotals.Яш' [C:\Avantia проекты\время\карта содержаться материалы табель учета рабочего времени\решение\альманах\альманах.csproj]

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

<EnableDefaultContentItems>false</EnableDefaultContentItems>

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

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

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

глядя на мою .csproj file:

<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. Надеюсь, это кому-то поможет.

Как ссылка, вы можете отключить это поведение (автоматическое включение) и включить все содержимое явно, добавив это в свой csproj file:

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

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

вообще-то, Asp.net ядро автоматически включает содержимое из wwwroot\css\,wwwroot\js\ и wwwroot\lib\ расположение, так что, несмотря на это, если ваш 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>

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

вы также можете получить эту ошибку, когда у вас есть один и тот же файл, указанный дважды в <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" />
...

С кстати, я думаю, что вы добавляете все файлы в папке темы. Поэтому не включайте их по одному, что происходит с некоторыми ошибками.

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

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

Итак, для нашего конвейера build server мы написали очень маленький инструмент what will удалить все дублирующие записи автоматически : 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-код

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

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