2018. 10. 26. 15:30

저는 자마린 프로젝트에서 발생했지만 기존 프로젝트에 닷넷 스탠다드(.NET Standard)로 프로젝트를 만들면 발생할 수 있는 오류가 아닌가 생각됩니다.

 

1. 오류 발생

자마린 프로젝트에서 PCL이 닷넷 스탠다드(.NET Standard)로 표준화되었습니다.

그래서 기존에 만들었던 PCL을 닷넷 스탠다드로 바꾸는 작업을 하고 있는데......

 

'EmbeddedResource' 중복 항목이 포함되었습니다. .NET SDK에는 기본적으로 프로젝트 디렉터리의 'EmbeddedResource' 항목이 포함됩니다. 프로젝트 파일에서 이러한 항목을 제거하거나, 프로젝트 파일에 해당 항목을 명시적으로 포함하려면 'EnableDefaultEmbeddedResourceItems' 속성을 'false'(으)로 설정할 수 있습니다. 자세한 내용은 https://aka.ms/sdkimplicititems을(를) 참조하세요. 중복 항목은 다음과 같습니다. 'App.xaml'; 'Loading.xaml'; 'Login.xaml'; 'MainPage.xaml'; 'MainPage2.xaml'

 

 

중복된 내용에 따라 다른 메시지가 표시될 수 있습니다.

 

.NET.Sdk.DefaultItems.targets(188,5): error : Duplicate 'Content' items were included. The .NET SDK includes 'Content' items from your project directory by default. You can either remove these items from your project file, or set the 'EnableDefaultContentItems' property to 'false' if you want to explicitly include them in your project file. For more information, see https://aka.ms/sdkimplicititems. The duplicate items were: 'wwwroot/css/BasicQuotation.css'; 'wwwroot/js/BasicQuotation.js'

 

참고 : stackoverflow - Duplicate 'Content' items were included. The .NET SDK includes 'Content' items from your project directory by default

 

 

 

 

오류 내용

한국어인데 알아들을 수 없는 이 내용을 간단하게 설명하자면.....

'[항목명]에 중복된 내용이 있는데 그건 [파일명],..... 이다'

입니다.

 

 

2. 해결 방법

어떤 메시지가 나오든 작업해야 할 내용은 같습니다.

그런데 오류 위치로 가기 위해 더블클릭하면 엉뚱한 곳으로 이동됩니다.

 

 

 

실제로 수정해야 할 내용은 '[프로젝트명].csproj' 파일입니다.

 

2-1. 권장 해결 방법

권장되는 해결방법은 좀 귀찮습니다.

 

1) 프로젝트를 언로드 합니다.

 

 

 

2) 프로젝트 파일을 편집으로 엽니다.

 

 

 

3) 내용을 수정합니다.

오류의 앞쪽에서 나온 이름이 태그명입니다.

 

해당 태그명을 가지고 있고 'Include' 값이 오류 내용 끝에 표시된 파일명을 찾습니다.

이 파일들이 들어있는 'ItemGroup'을 통째로 제거한다.

 

 

 

4) 프로잭트 리로드

이제 프로젝트를 다시 로드하고 빌드하면 에러가 사라진 것을 알 수 습니다.

 

 

2-2. 간단한 방법

그냥 프로젝트를 닫고 '[프로젝트명].csproj' 파일을 텍스트 편집기로 열어서 수정하면 됩니다.

프로젝트를 다시 열면 수정된 내용이 반영되는 것을 확인할 수 있습니다.

 

마무리

요즘 닷넷 계통이 업데이트하는 것을 보면 애플의 악몽이 떠오르네요.

그래도 여전히 MS제품들은 기능이 바뀌면서 기존 호환성을 갔다 버리는 경우가 많지는 않지만 그래도 손이 좀 가긴 합니다.

예전엔 이 정도 까진 아니였는데 말이죠;;;

어차피 업데트동의 여부가 확실하게 표시되니까 큰 문제는 없지만 말이죠 ㅎㅎㅎ