2011-08-29 3 views
1

프로젝트에서 참조해야하는 일부 종속성이있는 타사 라이브러리를 사용하고 있습니다.하나의 마크 업 요소에 여러 참조를 그룹화합니다.

각 "csproj"파일에는 항상 동일하게 "참조"요소가 있습니다.

모든 csproj 파일에서 사용할 수있는 하나의 표준 요소에이 요소 집합을 그룹화하는 방법이 있습니까?

예컨대 :

<ABunchOfReferences> 
    <Reference Include="Reference1" /> 
    <Reference Include="Reference2" /> 
    <Reference Include="Reference3" /> 
</ABunchOfReferences> 
... 
<ItemGroup> 
    <ABunchOfReferences/> 
    <Reference Include="System" /> 
    <Reference Include="System.Core" /> 
    ... 
</ItemGroup> 

"ABunchOfReferences은"매크로의 종류 전체적으로 "참조"요소 (3)로 확장 될 수있는 모든 이용 csprojs 포함하여 정의 될 것이다.

미리 감사드립니다.

+2

왜 가져 오기 파일에 모든 공유 참조를 정의하지 않는 것이 좋을까요? –

+0

@ 브라이언 : 아이디어를 주셔서 감사합니다.하지만 파일에 많은 그룹을 지정하여 유지 관리 할 파일이 많지 않도록하고 새로운 의존성이 나타날 때마다 새 그룹을 만들어야합니다. 그러나 다른 솔루션이없는 경우에는 이것이 실제로 가능한 해결 방법입니다. – Pragmateek

답변

1

당신은 가져 오기 파일에 대한 참조를 설정 한 후 선택적으로 포함시킬 수 있습니다 을 주 파일,

에서 References.props

<ItemGroup> 
    <BunchOfReferences Include="Reference1" /> 
    <BunchOfReferences Include="Reference2" /> 
    <BunchOfReferences Include="Reference3" /> 
</ItemGroup> 
<ItemGroup> 
    <MoreReferences Include="MoreReference1" /> 
    <MoreReferences Include="MoreReference2" /> 
    <MoreReferences Include="MoreReference3" /> 
</ItemGroup> 

... 다음 개별 프로젝트 파일에

<Import Project="PathTo\References.props" /> 

<ItemGroup> 
    <Reference Include="System" /> 
    <References Include="@(BunchOfReferences)" /> 
    <References Include="@(MoreReferences)" /> 
</ItemGroup> 
1

당신은 별도의 파일에 모든 "ABunchOfReferences"를 넣어 다음과 같이 당신의 ItemGroup 안에 해당 파일이 포함될 수 있습니다

<ItemGroup> 
    <Import Project="PathToFile\yourBunchofReferenceFile" /> 
    <Reference Include="System" /> 
... 
</ItemGroup> 
+0

문제를 살펴 주셔서 감사합니다. 이것이 잘 이해된다면 브라이언의 해답을 볼 수 있을까요? – Pragmateek

+0

네, 맞습니다. 나는 그 대답과 그것에 대한 당신의 반응을 간과했다. 응답에 응답하려면 참조를 조건부로 추가하려는 경우 참조 태그에 "조건"속성을 설정할 수 있습니다. – Arun

+0

"조건"을 설정하면 원본 msbuild 스크립트의 추가 정보를 전달하여 해당 조건과 일치하는 참조의 하위 집합 만 포함하도록 올바른 조건을 활성화합니다. 그것은 꽤 어색한 것 같습니다. 여러 파일 솔루션을 사용해야 할까 봐 걱정됩니다. – Pragmateek