how to use VC100 for MSBuild ?

I want to build a project developed with Visual studio 2010. The installed version is 2017 or 2019 and I want to know how to build another version.


Install VS2010.

I have a project for VS2010 which i cannot update (yet) without breaking it, and that’s the only working solution i found. While on local you can use VS2017 to work with files, you still need VS2010 installed for v100 toolset…

Anyway, someone put all what’s needed on Chocolatey, so under Actions it’s one-liner…

- run: choco install vcexpress2010

…which downloads and runs

This adds ~5-6 minutes to job run time, just to grab and prepare VS2010; not so great, but not so terrible either. Would love to see better/faster solution for this one, but currently it’s all i got.

Oh. Thank a lot ^^

I don’t know how to run vcexpress after installation

Also Can I patch the sdk separately?

just, I would like to use like below code

start msbuild env

call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86

and build

msbuild Build.proj /t:%TARGET% /p:Platform="%PLATFORM%";PlatformToolset="%TOOLSET%"


@kerry-cho wrote:



Sweet gods. I switched to CMake so long ago i totally forgot it exists…

If you can (and i’m fully aware it might be overkill for some projects), i’d recommend doing the same, so you don’t have to worry about such stuff anymore:

md Build
cd Build
cmake -G "Visual Studio 10 2010" ..
cmake --build . --config Release

That’s more or less what i’m using, leaving all dirty work to smart people maintaining CMake.

If that’s not an option… oh boy.

In theory this should work…

- run: "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
- run: "C:\Path\To\MSBuild.exe" ...

…but gods knows if Actions will keep env variables set inside .bat or not, didn’t tried yet. If they doesn’t for w/e reason, that’s not a [big] problem; you can extract all “set” from vcvars into something like this…

@set PATH=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE;%PATH%
@set PATH=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN;%PATH%
@set LIB=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\LIB;%LIB%
@set LIB=C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Lib;%LIB%
@set LIB=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib;%LIB%
@set INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include;%INCLUDE%

…and convert it to fancy Actions step:

- name: Environment
run: |
         echo ::add-path::C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
         echo ::add-path::C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN
         echo ::set-env name=LIB::C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\LIB;%LIB%
         echo ::set-env name=LIB::C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Lib;%LIB%
         echo ::set-env name=LIB::C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib;%LIB%
         echo ::set-env name=INCLUDE::C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include;%INCLUDE%
shell: cmd

That should configure environment just like vcvars would, for all later steps; see ::add-path and ::set-env docs for details.

What’s left is finding and running MSBuild; i have no bloody idea where installer puts it, neither i have any machine with VS2010 installed currently to check. Explore! :> Once you find it, just add it to PATH and…

- run: msbuild OhNoesLegacyCode.sln [options]

…like there’s no tommorow.

Easy, right? :slight_smile:

Wish i could help more than just wild guessing above, but it’s been years since i compiled anything on windows from scratch using vcvars + msbuild…

1 Like

Thanks you so much , sloved with your help.

The configuration time is a bit longer, but it doesn’t matter because the build time is longer.

Below is a Sample Repo

1 Like

I tried your config and it does not seem to want to work anymore.