Windows SDK Build Environment: Upcoming features and improvements

What to expect from Windows SDK build environment in Windows SDK v7.1

The Windows SDK command line build environment that ships with Windows 7.1 SDK will include several custom props and targets files that will provide the ability to build both native and managed applications. It supports building applications from makefiles and Visual Studio project and solution files. Because the Visual Studio 2010 Managed 4.0 content/toolset, VC++ 2010 compiler/toolset and MSBuild v4.0 toolset will ship in the Windows 7.1 SDK, customers who do not have VS2010 installed should be able to easily build applications using these in the 7.1 SDK build environment.


Building VC 2010 Projects

Windows SDK build environment will support building VC2010 projects if PlatformToolSet property in the project files is either set to Windows7.1SDK or is left blank. When you create a new project in Visual Studio 2010, by default the PlatformToolSet property is left blank. There projects will be able to build alright without any changes to the project files. But if the PlatformToolSet value is changed in the project setting either using the IDE or manually, you will have to change it to Windows7.1SDK to be able to build in the Windows SDK build environment.


Upgrading VS projects to 2010 format

Windows SDK will ship with a VC project upgrade tool called VCUpgrade.exe. You should be able to upgrade your projects from 2008 format to 2010 format by using the VCUpgrade.exe tool whose path will set properly in the Windows SDK build environment. Please note that, VCUpgrade tool will only support upgrading individual project but will not be able to support upgrading an entire solution.


Building Managed Projects:

By default, Windows SDK build environment will only support building Managed projects using MSBuild v4.0 which ships with .Net Framework 4. You can build managed projects targeting .Net Framework 2.0, .Net Framework 3.5, and .Net framework 4 using MsBuild v4.0. Windows SDK7.1 build environment will not support building managed projects using MsBuild v3.5.


Support for TeamBuild

If you have build machine which has Team Build 2010. Team build includes MsBuild  but does not have the required C/C++ build system files. So, if you install Windows SDK 7.1 on the machine you should be able to target Windows SDK 7.1 headers, libs and tools and build  the native projects by setting the PlatFormToolset to Windows7.1SDK and managed projects using MsBuild v4.0. But if you have any other Visual Studio retail SKU or earlier Windows SDK’s installed on the machine, you will not be able to build the managed projects by default using the Windows SDK 7.1 tool set. To be able to build your managed projects using the Windows SDK 7.1 tool set you will have to set an environment variable “WindowsSDKFrameworkToolsPathOverride” to ‘true’ in your build environment. This variable will kick in the custom props that ship with Windows 7.1 SDK which will override the how MSBuild looks for Managed tools. This could be either a global environment variable or a property you can set per project.


Building applications for Different platform architectures

In the new Windows SDK 7.1  Build environment, you will be agle to build projects and solutions targeting several platforms architectures. By default, the SDK build environment  will try to build the default platform configuration set in the project or solution file and then builds for all other platform configurations defined in the project or solution file. If your current build environment configuration does not match default settings in your project or solution, You can use MsBuild platform property (for example MsBuild.exe /p:platform=x86 to build for x86 platform ) to build for specific platform architecture.




Nanda Lella

Windows SDK Team


Comments (4)

  1. boris.dusek says:

    Hi Nanda, could you please provide me with an "official" name of the SDK? I am trying to update Wikipedia entry on Visual C++ to say that VC2010 compiler will be available in the SDK you are writing about, but don’t know how to call it – Windows SDK v7.1? Windows SDK 7.1? Windows 7.1 SDK? Microsoft Windows SDK 7.1? Also the previous SDKs were called like "Microsoft Windows SDK for Windows 7", so this adds a bit to the confusion. Thanks, Boris

  2. Just call it Windows SDK 7.1 it works on all supported platforms, not just Windows 7.

  3. kurtken says:

    The fact that you can't set v7.1 as the default for new projects is brain dead.

  4. leob says:

    I have just downloaded Windows SDK, but I can't find vcupgrade.exe there. Where is it supposed to be?

    Also, is devenv.exe available somewhere?