2012-03-26 3 views
2

나는 루트의 별도 디렉토리에있는 플러그인을 빌드하려고합니다.디렉토리의 모든 프로젝트 빌드

<ItemGroup> 
    <PluginProjectFiles Include="$(MSBuildStartupDirectory)..\..\Plugins\**\*.csproj"/> 
    </ItemGroup> 
    <Target Name="BuildPlugins"> 
    <MSBuild Projects="@(PluginProjectFiles)" Targets="Clean;Build" Properties="Configuration=Release" /> 
    <Message Text="Dir: $(MSBuildStartupDirectory)" /> 
    </Target> 

메신저에 문제가 있습니다. 내 빌드 'BuildPlugin'대상 실행되지만 내 프로젝트 파일을 빌드하지 않습니다. 내가 그것을 피할 수 있다면 나는 정말로 각 프로젝트를 따로 만들 필요가 없다.

모든 아이디어가 우수 할 것입니다. 감사합니다,

답변

2

내 해상도는 아래를 참조하십시오.

<PropertyGroup> 
    <SrcFolder>$(MSBuildProjectDirectory)\..\..</SrcFolder> 
    </PropertyGroup> 
    <ItemGroup> 
    <PluginProjectsFiles Include="$(SrcFolder)\Plugins\Plugin.*\*.csproj" /> 
    </ItemGroup> 
    <Target Name="BuildPlugins"> 
    <Message Text="Building Plugins" /> 
    <MSBuild Projects="@(PluginProjectsFiles)" Targets="Clean;Build" Properties="Configuration=Release" /> 
    <Message Text="Plugins Built" /> 
    </Target> 

나는 다음 내 DependsOnTargets 내 'BuildPlugins'대상에 내 기본 빌드 타겟에 속성 변경되었습니다. 이것이 누군가에게 도움이되기를 바라며, 이로 인해 상당한 고통을 느끼게됩니다.