я пишу сценарий MSBuild, который компилирует файл на C++ с использованием MSBuild CL Задачи, что-то вроде:MSBuild CL Задание выходного каталог
<CL Sources="c:\temp\myfile.cpp" />
Как я контролировать, где выход (myfile.obj) идет? По умолчанию он переходит к пути от того, где присутствует скрипт (и также является тем местом, откуда я запускаю скрипт): ie, если я запускаю скрипт (c: \ someFolder \ build.proj) от "c: \ someFolder \", тогда myfile.obj находится по адресу "c: \ someFolder \ myfile.obj".
Going диким (нелогичной) догадка, я также пытался теребить OUTDIR собственности (?!), что-то вроде:
<PropertyGroup>
<OutDir>d:\somePlace\<OutDir>
</PropertyGroup>
...
<CL Sources="c:\temp\myfile.cpp" />
не работает.
Аргумент ObjectFileName. Этот подход неразумный, задача CL имеет * много аргументов. Вместо этого используйте задачу ClCompile, поэтому MSBuild позаботится о вызове CL, и свойства, подобные IntDir и OutDir, действительно имеют эффект. Посмотрите, как он используется в файле .vcxproj, который генерирует IDE. –
Не CLCompile цель? Какой файл сборки я должен упомянуть в теге UseTask? Я не смог найти какую-либо информацию в Интернете относительно CLCompile Task ..? –
Да, цель. Он определен в Microsoft.Cpp.targets, автоматически вставляемый элементом '' в файле .vcxproj. –