July 9th, 2014

Building 8.1 apps (Windows Phone and Windows Store) using Visual Studio “14” CTP2

We recently released the CTP2 for Visual Studio “14”.  Through this blog post we wanted to inform you and solicit feedback about a change we have made in the way building C++ apps for down-level platforms is handled.  Everything mentioned below is relevant only for Windows Store and Windows Phone apps.  There are no changes for Desktop apps.

History

To provide some context, you would probably remember that in Visual Studio 2013, the primary development scenarios (for Store and Phone apps) are targeted towards the latest version of the platform (i.e. Windows 8.1 and Windows Phone 8.1).  This means that the latest tools for designing, packaging, debugging etc. are available only if you are building 8.1 apps.  This includes the latest compiler and libraries features.  The new C++ compiler and libraries toolset features in VS 2013 are available only for 8.1 apps.  On the other hand, the development of 8.0 apps is by default handled using the older (VS2012) compilers and libraries toolset.  This means that we actually shipped both the old (VS2012) and the new toolsets in VS2013.  This substantially increases the download/install time and the required space on disk.  It also poses interesting update challenges if the older toolset is already installed on the machine through an existing installation of VS2012.

Change

In Visual studio “14” we are sticking to the policy of using the older toolset (which is now VS2013) for older platforms (which is now 8.1).  However in this CTP, we are making an important change in the way the older toolset is installed on the machine.  And this is where we are looking for feedback.  Instead of including the older C++ toolset in Visual Studio “14”, we actually want to recommend that developers who are interested in using Visual Studio “14” for doing 8.1 app development should install Visual Studio 2013 side-by-side with Visual Studio “14”.  For the purpose of Store and Phone development it would suffice to install Microsoft Visual Studio Express 2013 for Windows with Update 2.  This is of course if you already don’t have it installed on your machine.  Once you have this product installed, you can still use the C++ toolset from VS2013 to build 8.1 apps even while working in Visual Studio “14”.  This is enabled through the C++ multi-targeting feature.  The end-result is an experience very similar to what we had in VS2013 for 8.0 apps.

CTP2 Caveats

While most things related to down-level platform targeting work, please do remember this is still a CTP so a few things are still work in progress 🙂 and will be fixed in future:

  • Currently in Visual Studio “14” CTP2, creating a new C++ project targeting Windows Store 8.1 or Windows Phone 8.1 is not supported. Additionally, creation of new C++ Universal projects for 8.1 platforms is also not supported.
  • Opening existing 8.1 C++ projects (created using VS2013) in Visual Studio “14” CTP2 will work for most cases with a few exceptions:
    • Windows Phone Silverlight 8.1 projects can’t be build using Visual Studio “14” CTP2
    • Universal projects created in VS2013 may not be loaded correctly in the Visual Studio “14” CTP2. In particular, the shared part will fail to load. If this happens close the solution and copy this file:
      • C:Program Files (x86)Microsoft Visual Studio 12.0VCVCWizardsShared.vcxproj
      • to
      • C:Program Files (x86)Microsoft Visual Studio 14.0VCVCWizards 

Summary

Just to emphasize once again, none of the above changes impact the experience for building Desktop apps.  For all supported desktop platforms, Visual Studio “14” CTP2 will always use the latest C++ toolset only.  These changes are relevant only for Store and Phone apps.  We are keen to hear your feedback about this change and how this will impact your experience building apps for down-level platforms.  Feel free to post your comments on this post or write an email directly to me at sharma.raman@microsoft.com

Category
C++

Author

0 comments

Discussion are closed.