2009-01-14 7 views
3

J'ai un fichier MSBuild .proj qui compile un mélange de projets C# et C++. Les projets C# compilent la sortie (.exe/.dlls) vers le OutputPath que je spécifie, mais quand je spécifie OutputPath pour les projets C++ (qui appelle vcbuild.exe), le OutputPath est ignoré et entre dans le répertoire spécifié dans les pages de propriétés pour le .vcproj.Comment définir le répertoire de sortie pour un projet C++ construit par msbuild?

Voilà ma tâche MSBuild:

<MSBuild Projects="$(SourceFolder)\$(NativeSolutionName)" 
      Targets="$(BuildTargets)" 
      Properties="Configuration=$(Configuration);PlatformName=Win32;OutputPath=$(ToolsOutputDir)"> 
    </MSBuild> 

Comment puis-je spécifier que les fichiers de sortie C + devraient aller dans le même répertoire que les fichiers de sortie C# $ (ToolsOutputDir)?

Répondre

1

j'ai pu faire ce travail en procédant comme suit:

1) Installation du Microsoft SDC MSBuild Tasks Library

2) Dans les pages de propriétés pour les projets C++, la définition du répertoire de sortie $(OutputPath).

3) Ajout d'une tâche DDC à la variable d'environnement OutputPath avant de construire les projets C++ via VCBuild:

<Microsoft.Sdc.Tasks.SetEnvironmentVariable Variable="OutputPath" Value="$(ToolsOutputDir)" Target="Process"/> 

    <!-- Build any CPP code x86 --> 
    <MSBuild Projects="$(SourceFolder)\$(NativeSolutionName)" 
      Targets="$(BuildTargets)" 
      Properties="Configuration=$(Configuration);PlatformName=Win32;OutputPath=$(ToolsOutputDir)"> 
    </MSBuild> 
Questions connexes