Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ MSBuild依赖项不是生成的_C++_Msbuild - Fatal编程技术网

C++ MSBuild依赖项不是生成的

C++ MSBuild依赖项不是生成的,c++,msbuild,C++,Msbuild,我有以下目标: <Target Name="Build" DependsOnTargets="Build_Shared" /> <Target Name="Build_Shared" DependsOnTargets="Build_Shared_x86;Build_Shared_x64"/> <Target Name="Build_Shared_x86" DependsOnTargets="SetPlatform_x86;Shared_1;..." /> &l

我有以下目标:

<Target Name="Build" DependsOnTargets="Build_Shared" />
<Target Name="Build_Shared" DependsOnTargets="Build_Shared_x86;Build_Shared_x64"/>
<Target Name="Build_Shared_x86" DependsOnTargets="SetPlatform_x86;Shared_1;..." />
<Target Name="Build_Shared_x64" DependsOnTargets="SetPlatform_x64;Shared_1;..." />

问题是x64目标中没有生成共享的_1依赖项。我猜MSBuild认为由于x86目标,它已经生成了。我不想为所有共享组件创建不同的x86/x64目标。我有一些依赖于构建共享的应用程序,它们需要x86和x64来构建,所以我需要这样的依赖关系。

请注意,每个目标在构建过程中只执行一次。如果根据共享的_1目标有多个目标,则共享的_1将只运行一次,并且当第二个DependsOnTargets=..时,共享的_1将被视为已经运行。。;共享1;。。遇到了

如果需要多次运行同一目标,则需要使用嵌套的msbuild命令:

<Target Name="Build_Shared">
    <MSBuild Projects="$(MSBuildProjectFile)" Targets="Shard_1" Properties="Platform=x86" />
    <MSBuild Projects="$(MSBuildProjectFile)" Targets="Shard_1" Properties="Platform=x64" />
</Target>
您还可以使用Targets=SetPlatform_x86;共享1;。。如果你需要的话