2009-01-14 57 views
3

我有一个正在编译C#和C++项目混合的MSBuild .proj文件。如何为由msbuild构建的C++项目设置输出目录?

C#项目编译输出(.exe/.dlls)到我指定的OutputPath,但是当我为C++项目指定OutputPath(调用vcbuild.exe)时,OutputPath被忽略,而是进入指定的目录在.vcproj的属性页中。

这里是我的MSBuild任务:

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

我怎么可以指定C++输出文件应到同一目录C#输出文件$(ToolsOutputDir)?

回答

1

我能够这样做,使这项工作如下:

1)安装Microsoft SDC MSBuild Tasks Library

2)在属性页的C++项目,输出目录设置为$(OutputPath)

3)添加SDC任务经由VCBuild构建C++项目之前设置环境变量OutputPath

<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> 
相关问题