2012-02-22 6 views
13

~ 15 개의 프로젝트에서 설정해야하는 일련의 특성이 있습니다. 이러한 속성을 단일 파일에 저장하고 모든 프로젝트 파일이 각 프로젝트 파일의 속성을 복제하는 대신 일종의 가져 오기 지시문을 사용하여 하나의 파일을 참조하도록 할 수 있습니까?csproj 파일의 재사용 가능한 PropertyGroup 요소

편집 : 분명히하기 위해, 나는 csproj 파일 내에서 <PropertyGroup> 요소에 대해 이야기하고 있습니다. 모든 프로젝트에는 동일한 일련의 <PropertyGroup> 설정이 필요합니다. 이러한 요소는 DebugSymbols 또는 DefineDebug과 같은 속성을 설정하며 소스 파일을 참조하는 데 사용되지 않습니다.

답변

18

을 보여줍니다.

재사용 가능한 파일은 다음과 같아야합니다 다음 xmlns 선언 루트 Project 요소를 갖는 필요하다고

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
     <!-- Properties go here --> 
    </PropertyGroup> 
</Project> 

주 - VS가없이이 파일을 참조하는 프로젝트를로드 할 수 없습니다.

내 솔루션 디렉토리에 내 속성 설정을 ProjectBuildProperties.targets로 저장했습니다.

<Import Project="$(SolutionDir)ProjectBuildProperties.targets"/> 

을 그리고 그것은 작동합니다

다른 프로젝트에서 파일을 포함하려면, 나는 csproj 파일이 추가되었습니다!

2

모든 프로젝트에서 가져올 수있는 공유 MSBuild 파일을 만들 수 있습니다. 이 post

이 솔루션을 설명하고 <Import> 요소가 파일을 사용하는 대상으로하는 방법을 사용자 정의와 유사한이, 사용할 수 있습니다 그것은 here