2017-03-23 1 views
6

내부 .csproj 파일 Visual Studio 및 Xamarin Studio는 기본적으로 프로젝트 내부에서 사용되는 모든 파일에 대한 참조를 유지합니다. csproj 파일 및 새 파일에 와일드 카드 사용 추가

<ItemGroup> 
    <Compile Include="Utils\Foo1Utils.cs" /> 
    <Compile Include="Utils\Foo2Utils.cs" /> 
    <Compile Include="Services\FooService.cs" /> 
    ... 
</ItemGroup> 

모든 파일뿐만 아니라에서 우리의 솔루션 안에 csproj 파일에 대한 충돌을 피하기 위해, 우리는 와일드 카드를 사용하기 시작 :

<ItemGroup> 
    <Compile Include="Utils\*.cs" /> 
    <Compile Include="Services\*.cs" /> 
    ... 
</ItemGroup> 

문제는 분명히 모두 Visual Studio 및 자 마린 스튜디오에가되지 않는 것입니다 IDE에 우리가 와일드 카드를 사용하고 있다는 것을 "설명"할 수 있으며, 프로젝트에 새 파일을 추가 할 때 폴더에 와일드 카드 *.cs을 무시하고 파일에 대한 새로운 참조를 추가합니다. 모든 파일을 추가 할 때마다 .csproj를 적용 할 필요가 없기 때문에 여전히 좋은 솔루션이지만, 이제는 매번 다시 설정해야합니다. 솔루션이 있는지 아는 사람은 누구입니까?

편집 : 라이더 (JetBrains) csproj에 와일드 카드가 있고 모든 파일이 잘 작동하면이 문제가 없습니다.

+0

새 파일이 추가 된 Utils 또는 Services 폴더 내에 하위 폴더가 있습니까? ? – Poosh

+0

@Poosh 가끔은 하위 폴더가 있지만 경험상 차이가 없습니다. 폴더 구조를 거의 변경하지 않으므로 간단히 "Utils \\ *. cls"및 "Utils \ Subutils \\ * .cs"라고 적습니다. –

+0

Visual Studio에서 와일드 카드를 사용하여 csproj 파일에서 참조되는 폴더 중 하나에 새 클래스를 추가 한 다음 Visual Studio를 끝내면 변경 내용을 저장할 것인지 묻는 메시지가 나타납니다. 솔루션/프로젝트? – Poosh

답변

0

필자는 내 질문에 대답하므로 해결할 수 있습니다. 라이더에는이 문제가 없으므로 Visual Studio에서 Win 및 Mac 용으로 구현되지 않은 기능 일뿐입니다. 새로운 형식의 .csproj (<Project Sdk="Microsoft.NET.Sdk">으로 시작하는 변환 형식은 누구나 변환 할 수 있으므로 누구나 변환 할 수 있으므로 적극 권장합니다.)

1

프로젝트의 새 형식 (.net core 2)을 사용하는 경우 프로젝트 폴더의 파일에 지정할 필요없이 와일드 카드 포함을 사용합니다. 원하는 대상을 컴파일하도록 대상 프레임 워크를 수동으로 설정할 수 있습니다.

+0

감사합니다. 이전 프로젝트 중 일부를 변환했는데 실제로 새로운 형식으로 아무것도 포함 할 필요가 없습니다. 그런데 몇 가지 프로젝트를 변환하는 데 몇 가지 문제가 있었고 Rider 와일드 카드가 잘 작동한다고 생각하면 제 질문에 대한 해결책은 간단합니다. Mac과 Win에서 Visual Studio의 버그입니다. –

+0

csproj 형식은 꽤 오래 되었기 때문에 구현하기가 다소 까다 롭습니다. 늙은 기이 한 일을 피하려면 앞으로 나아가는 것이 좋습니다. 일부는 몇 년 후에 풀 요청으로 해결 될 수 있습니다. – ozzymcduff