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 editing the vcxproj file?
I'm using the following command line in my build script currently:
mysystemf("msbuild %s.vcxproj /t:rebuild /p:configuration=release,platform=%s", prjname, platform);
The PlatformToolset is configured as part of a PropertyGroup for the configuration.
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
I found the answer in MSDN:
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
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 theVisualStudioVersion
.