我有一个MSBuild .proj文件,它正在编译C#和C ++项目的混合。
C#项目将输出(.exe / .dlls)编译到我指定的OutputPath,但是当我为C ++项目(调用vcbuild.exe)指定OutputPath时,OutputPath将被忽略,而是进入指定的目录.vcproj的属性页。
这是我的MSBuild任务:
<MSBuild Projects="$(SourceFolder)\$(NativeSolutionName)"
Targets="$(BuildTargets)"
Properties="Configuration=$(Configuration);PlatformName=Win32;OutputPath=$(ToolsOutputDir)">
</MSBuild>
如何指定C ++输出文件应该转到与C#输出文件$(ToolsOutputDir)相同的目录?
答案 0 :(得分:1)
我能够通过以下方式完成这项工作:
1)安装Microsoft SDC MSBuild Tasks Library
2)在C ++项目的属性页面中,将输出目录设置为$(OutputPath)
。
3)在通过VCBuild构建C ++项目之前,添加SDC任务以设置环境变量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>