GoingNative 54: What's New In Visual Studio 2017 RC and Introduction To Vcpkg

Download this episode

Download Video

Description

This episode of GoingNative comes to you in two parts:

First, Steve chats with Augustin Popa about the latest and greatest features in Visual Studio 2017 RC. Please try it out and let us know how you like it! For deeper dives on specific features, feel free to watch the Connect(); videos, or read about it on the Visual C++ Blog.

Second, Robert Schumacher talks about the new open source Windows package manager, Vcpkg. Vcpkg has been picked up enthusiastically by the community with a growing collection of supported libraries (90+ at the time this video was posted).

 

Timestamps:

[ 01:00 ]  Visual Studio 2017 RC
    [ 01:25 ]  Acquisition overhaul - new installer!
    [ 03:32 ]  Performance improvements
    [ 05:05 ]  Productivity enhancements
    [ 13:03 ]  Call to action

[ 13:34 ]  Vcpkg
    [ 14:09 ]  What is Vcpkg?
    [ 19:29 ]  Community response
    [ 20:17 ]  Vcpkg vs. NuGet for C++
    [ 24:52 ]  How to get it, and VS versions supported
    [ 26:54 ]  Demo
        [ 27:00 ]  Installing
        [ 28:18 ]  Using Vcpkg
        [ 32:01 ]  CMake support
    [ 34:09 ]  Community call to action

Embed

Format

Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • User profile image
      Igor

      All this looks really cool. Especially such things as CMake support and seamless dependencies install (Vcpkg). Though, I have certain questions:
      - Specifying dependencies for a project and make build system pull+build them in project's build?
      - Multiple versions of the same lib for different projects?
      - Lock files (like Bundler, Cargo) for reproducible builds?
      - Make project's deps' public include folders available to dependent project, without conflicts?
      - Custom sources for Vcpkg (like direct Git, or local repository)?

    • User profile image
      AugustinPopa
      @Igor:

      Hi Igor, thanks for the questions!

       

      1. We recommend either

        a) A prebuild action which runs "vcpkg install <x> <y> <z>" for every package you'd like to depend on

        b) (for open source projects) A readme doc which gives users a one-liner for each platform you support: apt-get, brew, yum, vcpkg, pacman, etc.

      2. Vcpkg is completely relocatable and you can have completely independent version sets side-by-side. We didn't mention it in the video, but every vcpkg enlistment has a props file that you can use to override the "user-wide" system we demoed.

      3. We wield the "ports\" directory as our Lock file -- it specifies exactly what versions are desired and how to build them. For closed source projects, vcpkg is perfectly suitable to be either checked in directly or included via submodule/subtree.

      4. I'm not 100% sure what you mean here, but the intention is that every library in vcpkg is made available to every part of your "process" (so, exe + any dlls). In this way, it serves to make libraries look and feel like the Windows SDK.

      5. Today, you can drop in (or override) any additional ports you'd like into the "ports\" directory and they'll instantly become available. In the future, we do want to support this scenario better though! We have an active issue on GitHub to discuss it and I'd love to have your perspective: https://github.com/Microsoft/vcpkg/issues/114

       

      I hope these answered your questions; please also check out our FAQ (https://github.com/Microsoft/vcpkg/blob/master/docs/FAQ.md) and join us on GitHub to shape the future! :)

    • User profile image
      Repka

      Any chance to get Vcpkg going with new VC++ 2017?

    • User profile image
      AugustinPopa

      @Repka:

      Hi Repka, you can use libraries generated by vcpkg in VS 2017 today, but you need VS 2015 to build the libraries. We are working on enabling the 2017 toolset for builds so that you'll have complete VS 2017 support. The goal is to have that ready by the time of the final RTW release.

    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to send us feedback you can Contact Us.