3

Since the new runtime libraries aren't on every computer, they need to have the redistributables downloaded, and I know I can do this with some kind of installer, but that is very troublesome.

So instead is there just a way for me to build my project with the old runtime libraries that are on every computers?

Or if I download an older version of visual studios and build the project on there to create the release, would that work properly? If this is possible is this the best way to go about it?

NOTE: statically linking the libraries is out of the question.

  • You definitely can use newer versions of VS on older MSVC versions and targets. You just need to install the older VS versions that correspond to what you want. – BlamKiwi Feb 03 '15 at 03:41
  • When you use the older Platform Toolsets, you are using the older compiler with the new IDE. The VS 2012 compiler, for example, can only build code that uses the VS 2012 CRT. – Chuck Walbourn Feb 03 '15 at 05:03
  • " the old runtime libraries that are on every computer" - which ones would that be? You can't count on any version. – MSalters Feb 03 '15 at 11:13

1 Answers1

5

With C++ (both managed and native) you can specify that you want to use the old build libraries. The only caveat is that you need the early versions of Visual Studio installed on your build machine.

You specify the toolset you want via the project property pages \ Configuration Properties \ General \ Platform Toolset combo.

enter image description here

Andrew Shepherd
  • 44,254
  • 30
  • 139
  • 205
  • Thanks a lot this was actually incredibly helpful. And since I'm not 100% sure, I've only read it places, I'd like to clarify: if I use the 2010 toolset the program should be able to run on almost any windows pc assuming I have all of my third party DLL files straitened out? EDIT: I was assuming I should use the 2010 toolset until I realized you had the 2012 - XP one selected.. Should I be using that one instead? – Charles Hetterich Feb 03 '15 at 04:06
  • @Charles Hetterich - Absolutely. This morning I had code that wasn't running on Windows XP, and I solved the problem today by selecting that toolset. You will have to make sure you have the latest version of Visual Studio 2012 - this Windows XP option only came in a later update. – Andrew Shepherd Feb 03 '15 at 04:15
  • 1
    Keep in mind that the ``v110_xp`` and ``v120_xp`` Platform Toolsets are actually using a version of the Windows 7.0A SDK because the standard Windows 8.x SDK does not support Windows XP. This has some important implications for [DirectX](http://blogs.msdn.com/b/chuckw/archive/2012/11/26/visual-studio-2012-update-1.aspx) development, and that you can't use any Windows 8 specific APIs in those builds. – Chuck Walbourn Feb 03 '15 at 05:05