나는 우리의 CI 과정에 대한 MSBuild에서 스크립트를 만들고이 스크립트에서 나는 솔루션을 컴파일하기 위해 MSBuild에서 작업을 사용MSBuild 4.0에서 C# 프로젝트 파일의 MSBuild 작업에서 확장 할 속성 이름을 전달하는 방법?
<PropertyGroup>
<MyOutPath>Output</MyOutPath>
</PropertyGroup>
<MSBuild
Projects="MySolution.sln"
Targets="Clean;Rebuild"
Properties="OutputPath=$(MyOutPath)\%24(AssemblyName)">
</MSBuild>
내가 C# 프로젝트 파일이
- 같은 출력 경로를 사용하려면를 프로젝트에 대한 출력 \의 MyAssemblyName1는
- 출력 \ MyAssemblyName2 프로젝트가 MyAssemblyName2에 대한
는 AS를 MyAssemblyName1 semblyName 속성은 C# 프로젝트 파일에서 가져온 것으로 프로젝트를 빌드 할 때 OutputPath 속성에서 확장되도록하고 싶습니다.
지금, % 24 (AssemblyName)은 내가 원한이 아닌 파일 시스템에 Output \ $ (AssemblyName)을 생성합니다.
$ (AssemblyName)을 사용하면 "상위"MSBuild 파일에서 아무 것도 확장되지 않습니다.
나중에 대상 프로젝트 파일에서 AssemblyName 속성의 해결을 연기 할 수있는 방법이 있습니까?
또한 CI 시스템의 영향을 최소화하려면 .csproj 파일을 수정하고 싶지 않습니다.
글쎄, 나는 여러 프로젝트 파일과 사전에 알려져 있지 않은 모든 프로젝트 파일을 참조하는 해결책을 가지고 있습니다. 가져 오기 지원 항목이 있습니까? –
또한 모든 프로젝트가 반드시 포함되는 것은 아니라는 솔루션을 가지고 있으므로 올바른 프로젝트 파일을 처리하기 위해 sln 파일을 구문 분석해야합니다. –
MSBuild 4.0을 사용하는 경우 [가져 오기] (http://msdn.microsoft.com/en-us/library/92x05xfs.aspx) 요소는 실제로 와일드 카드를 지원하므로' '특정 디렉토리의 모든 프로젝트 파일을 가져옵니다. –