我有一个Visual Studio解决方案,其中包含多个C#项目和一个C ++项目。
C ++项目已正确配置为针对x64和win32构建(具有单独的输出目录,为32和64引用了正确的二进制文件,依此类推),并且默认配置为x64。为任何CPU配置了C#项目。
在构建整个解决方案时,如何配置我的解决方案以同时为x64和Win32构建C ++项目?
P.S .:在这种情况下,批处理构建无法完成,因为我需要以任何人克隆存储库的方式进行配置,而无需进行任何其他设置即可
答案 0 :(得分:1)
如何配置我的解决方案以为两个x64都构建C ++项目 和整个构建解决方案时使用win32?
请使用批处理构建来构建您的解决方案。
1):首先右键单击您的解决方案,然后选择批处理构建。
2)其次,检查要构建的C ++项目。然后,您可以检查项目的64位和32位,还可以为 Configuration 选择Debug
或Release
。最后,单击“生成”或“重建”以同时生成不同版本的输出文件。
3)完成后,请打开解决方案文件夹。在我这边,Debug
或Release
文件夹仅用于 32位,而x64
文件夹仅用于 64位。
更新1
由于您不想配置VS设置然后使用批处理构建,因此我认为您可以在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>
这些目标取决于Build
或Clean
目标。因此,当您构建项目时,它们将始终在以后执行,并将项目构建到其他版本中。
此外,此方法与您的解决方案相关,因此当其他人克隆您的解决方案时,直接从您的脚本进行构建,或在VS IDE中单击 Build ,然后您会看到x64
和解决方案中文件的x86
版。
希望它可以为您提供帮助。