Can I set the platform toolset from the command line when building with VS2010's msbuild?

后端 未结 4 399
生来不讨喜
生来不讨喜 2020-12-14 21:27

When I\'m building a VS2010 with msbuild from the command line, can I change the platform toolset to v90 (i.e. Visual Studio 2008 toolchain) from the command line, without e

相关标签:
4条回答
  • 2020-12-14 22:08

    Yes you can set PlatformToolset without change the vcxproj file.

    If you open a vcxproj file, you'll see that there is a PlatformToolset property. For visual studio 2012, it is v110; For VS2010, it is v100; For VS2008, it is v90.

    You could overwrite this property with /p:PlatformToolset=v110/v100/v90 to change the toolchain.

    Note: Sometimes, msbuild failed with error Unsupported platformtoolset value, it is mostly because you have not specify the VisualStudioVersion.

    0 讨论(0)
  • 2020-12-14 22:08

    I found the answer in MSDN:

    To rebuild your project with the Visual C++ 9.0 toolset, type either of the following commands:

    msbuild myproject.vcxproj /p:PlatformToolset=v90 /t:rebuild

    0 讨论(0)
  • 2020-12-14 22:09

    The PlatformToolset is configured as part of a PropertyGroup for the configuration.

    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
      <ConfigurationType>Application</ConfigurationType>
      <UseDebugLibraries>true</UseDebugLibraries>
      <CharacterSet>Unicode</CharacterSet>
      <PlatformToolset>v90</PlatformToolset>
    </PropertyGroup>
    

    If you want to change toolsets from the command line, you should add a configuration for each toolset (easily done using the IDE) and then call that configuration for the build.

    msbuild %s.vcxproj /t:rebuild /p:configuration=VC90Release,platform=%s

    0 讨论(0)
  • 2020-12-14 22:22

    From here http://msdn.microsoft.com/en-us/library/bb397428

    It says that adding /ToolsVersion:3.5 will build it as if it were a VS 2008 project

    0 讨论(0)
提交回复
热议问题