Я создал пользовательский файл .targets, как показано ниже (только что добавил все общие задачи, необходимые в файле myproj.vcxproj, в файл .targets)
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- *******************************************************************************************
Common tasks
******************************************************************************************* -->
<Target Name="H1">
<Exec Command="del /F/Q @(S_PACK_H1)" />
<RemoveDir Directories="@(D_PACK_H1)" />
</Target>
<Target Name="H2">
<Exec Command="del /F/Q @(S_PACK_H2)" />
<RemoveDir Directories="@(D_PACK_H2)" />
</Target>
<Target Name="H11">
<Exec Command="del /F/Q @(S_PACK_H11)" />
<RemoveDir Directories="@(D_PACK_H11)" />
</Target>
</Project>
Все макросы / массивы, такие как S_PACK_H1, D_PACK_H11, являютсяопределяется в файле myproj.vcxproj, после чего я импортирую его в файл myproj.vcxproj, как показано ниже
<Import Project="C:\Program Files\MSBuild\MyCompany\Mycustom.targets" />
, когда я использую приведенный ниже cmd
msbuild myproj.vcxproj / t: H11
выдает ошибку "ошибка MSB4057: цель" H11 "не существует в проекте"
, но если у меня такой же список задач в файле .vcxproj вместо файла .targets, то онотлично работает.
Можно ли определить макросы в файле .vcxproj и использовать их в файле .targets?Сможет ли MSBuild получить это определение / значение?Если нет, то как мне использовать / передать что-то, определенное в файле vxcproj в файле .targets?
Почему msbuild не может увидеть мою задачу, если она находится в файле .targets Vsфайл .proj?что еще мне нужно сделать?