Javascript 또는 CSS 파일을 asp.net 핵심 프로젝트에 추가하고 dotnet run
bash 터미널에서 실행할 때마다 다음 오류가 발생합니다.
/usr/share/dotnet/sdk/1.0.1/Sdks/Microsoft.NET.Sdk/build/Microsoft
.NET.Sdk.DefaultItems.targets (188,5) : 오류 : 중복 ‘콘텐츠’항목이 포함되었습니다. .NET SDK에는 기본적으로 프로젝트 디렉토리의 ‘Content’항목이 포함됩니다. 프로젝트 파일에서 이러한 항목을 제거하거나 프로젝트 파일에 명시 적으로 포함 시키려면 ‘EnableDefaultContentItems’속성을 ‘false’로 설정할 수 있습니다. 자세한 내용은 https://aka.ms/sdkimplicititems를 참조 하십시오 . 중복 된 항목은 ‘wwwroot / css / BasicQuotation.css’; ‘wwwroot / js / BasicQuotation.js'[/mnt/c/Dev/myproject/MyProject/MyProject.csproj]
빌드가 실패했습니다. 빌드 오류를 수정하고 다시 실행하십시오.
ItemGroup
내 csproj 파일에서 를 제거 하여이 문제를 해결할 수는 있지만 그것이 매우 생산적이라고 생각하지 않습니다.
기본 Visual Studio 2017 ASP.NET 핵심 웹 응용 프로그램 (.NET 핵심) 템플릿에서 발생합니다. 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="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>
답변
그래서 나는이 같은 문제에 부딪쳤다. 문제를 “수정”하지 않는다는 것을 알았 기 때문에 DefaultCompileItems를 끄고 싶지 않았습니다. 그래서 프로젝트를 언로드하고 Visual Studio에서 텍스트 모드로 .csproj 파일을 열어서 이것을 보았습니다.
<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.css와 같이) 중복으로 계산됩니다.
답변
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'
답변
이것은 내 경우에 효과가 있었다.
<PropertyGroup>
...
<EnableDefaultContentItems>false</EnableDefaultContentItems>
</PropertyGroup>
답변
지금 프로젝트를 .NET Core 1.X에서 2.0으로 업그레이드했을 때 발생했습니다. 여기 내 해결책이 있습니다.
- xxx.csproj를 열거 나 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오.
- 프로젝트 언로드
- xxx.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에는 기본적으로 프로젝트 디렉토리의 ‘Content’항목이 포함됩니다. 프로젝트 파일에서 이러한 항목을 제거하거나 프로젝트 파일에 명시 적으로 포함 시키려면 ‘EnableDefaultContentItems’속성을 ‘false’로 설정할 수 있습니다. 자세한 내용은 https://aka.ms/sdkimplicititems를 참조 하십시오 . 중복 된 항목은 다음과 같습니다. ‘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 Projects \ Time Card \ avantia-timesheet \ Solution \ Almanac \ Almanac.
내가 이렇게하면 :
<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
파일을 보면 :
<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
최근에 설치 한 것과 관련 이 있다고 가정합니다 .
또한,이 링크 는 글로브에 대한 이야기를 언급합니다. 그러나 그것이 어디에 있는지 말하지 않습니다. SDK 등에 대해 이야기합니다. 그러나 대답은 내 사용자 정의 .js
파일이었습니다. IMHO에서 해당 링크를 업데이트하거나 확장해야합니다. 이것이 누군가를 돕기를 바랍니다.
답변
로 링크가 말한다 ,이 동작을 (자동 포함) 해제하고이 점을 추가하여 모든 내용을 명시 적으로 포함 할 수 있습니다 csproj
파일 :
<PropertyGroup>
<EnableDefaultContentItems>false</EnableDefaultContentItems>
</PropertyGroup>
답변
제 경우에는 VS의 wwwroot-Directory에서 모든 파일을 삭제 하여이 문제를 해결했습니다. 프로젝트를 언로드했다가 다시로드하십시오. VS로 모든 파일을 다시 복사하십시오. 끝난
