在多个平台的解决方案中构建 visual studio 个 C++ 项目

Build visual studio C++ project within solution for multiple platforms

我有一个 Visual Studio 解决方案,其中包含多个 C# 项目和一个 C++ 项目。

C++ 项目已正确配置为同时为 x64 和 win32 构建(具有单独的输出目录、适用于 32 位和 64 位的二进制文件等),默认配置为 x64。 C# 项目配置为 Any CPU.

在构建整个解决方案时,如何配置我的解决方案以构建适用于 x64 和 win32 的 C++ 项目?

P.S.: 批量构建不会在这种情况下完成工作,因为我需要以任何克隆 repo 的方式配置它,无需任何额外设置即可正确构建

How can I configure my solution to build the C++ project for both x64 and win32 when building the entire solution?

请使用批量构建来构建您的解决方案。

1) 首先右键单击您的解决方案并选择 Batch Build.

2)其次,勾选你要构建的C++项目。然后您可以检查项目的 64 位和 32 位,您还可以 select DebugReleaseConfiguration。最后点击Build或者Rebuild,可以同时生成不同版本的输出文件。

3)完成后,请打开解决方案文件夹。在我这边,DebugRelease 文件夹仅适用于 32 位 ,而 x64 文件夹仅适用于 64 位.

更新 1

由于您不想配置 VS 设置然后使用 Batch Build,我认为您可以在 xxxx.vcxproj 文件中使用自定义构建目标。

将这些目标添加到整个解决方案中所有 C++ 项目的 xxxx.vcxproj

<Target Name="BuildFunction" AfterTargets="Build">
    <MSBuild Condition="'$(Platform)'=='Win32'" Projects="$(MSBuildProjectFile)" Properties="Platform=x64;PlatFormTarget=x64" RunEachTargetSeparately="true"  />
    <MSBuild Condition="'$(Platform)'=='x64'"   Projects="$(MSBuildProjectFile)" Properties="Platform=Win32;PlatFormTarget=x86" RunEachTargetSeparately="true" />
  </Target>

  <Target Name="CleanAll" AfterTargets="Clean">
    <MSBuild Condition="'$(Platform)'=='Win32'" Projects="$(MSBuildProjectFile)" Targets="Clean" Properties="Platform=x64;PlatFormTarget=x64" RunEachTargetSeparately="true"  />
    <MSBuild Condition="'$(Platform)'=='x64'"   Projects="$(MSBuildProjectFile)" Targets="Clean" Properties="Platform=Win32;PlatFormTarget=x86" RunEachTargetSeparately="true" />

  </Target>

这些目标取决于 BuildClean 目标。所以当你构建项目时,它们总是会在后面执行,并将项目构建到其他版本中。

此外,此方法与您的解决方案相关联,因此当其他人克隆您的解决方案时,直接从您的脚本构建或在 VS IDE 中单击 构建 然后您会在解决方案中看到文件的 x64x86 版本。

希望对您有所帮助。