It’s only been a week since we released Visual Studio 2017 and we’re already working on an update: Visual Studio 2017 Update Preview. This Update preview includes two main changes: improvements to the Universal Windows Platform (UWP) tools to support the Creators Update SDK and the addition of the Python tools. For full details of what’s in this preview, you can read the release notes.
A Note on Updates
There’s a notable change we’ve made with previews in Visual Studio 2017: you’re able to install previews side by side with the released version of Visual Studio. That means you can use Visual Studio 2017 for your stable production work and Visual Studio 2017 Update Preview to get a peek into what we have in the pipeline. When you install both, you’ll see two different task bar icons so you can distinguish them – one that’s solid (for the released version) and one that’s not (for the preview). Similarly, if you happen to load the Visual Studio installer and you have both the released and Update preview versions of VS installed, you’ll even see both of them in the UI.
Just like the released version of Visual Studio, these previews will update, so expect to see the familiar update flag in the title bar letting you know an update is ready for you to download and install.
One note about the “side by side” experience: while most of Visual Studio RTM and these Update previews will be side by side, there are some components that have only one on the system like the C runtime, the .NET Framework, and the Visual Studio installer itself.
Astute observers may also note that, starting in Visual Studio 2017, we moved to a simpler versioning system – you’ll see minor versions like 15.1, 15.2, and so on, with patch updates identified with a longer build number. This first update will be versioned 15.1, and eventually you will see patches identified (e.g. 15.1.12345) when they become available. This versioning system is a bit simpler than the “Visual Studio Update 1” terminology we used previously and does a better job matching the speed and frequency that we will be releasing.
Universal Windows Platform (UWP) Tools
The Universal Windows Platform Tools have been updated to add support for the upcoming Creators Update SDK. We have also made several other improvements listed below.
Windows SDK Preview Support
Starting with the Creators Update SDK, we will enable side-by-side installation of the SDK. This will allow you to create production ready packages targeting the released versions of the SDK from the same machine, even when preview SDKs are installed. We hope this feature will help you to test new APIs and functionality available in preview SDKs without having to setup a separate machine. This preview version of Visual Studio 2017 will install the 10.0.15052.0 preview version of the Windows SDK. You will get the best experience if you target this SDK with Visual Studio 2017 running on Windows Insider build 15055 or later, available in the fast ring.
Please note that targeting the Creators Update SDK is only supported in Visual Studio 2017.
PackageReference support in UWP projects
In the past, NuGet packages were managed in two different ways – packages.config and project.json – each with their own sets of advantages and limitations. With the introduction of PackageReference, we have enhanced the NuGet package management experience significantly with features such as deep MSBuild integration, improved performance for everyday tasks such as install and restore, and multi-targeting.
While we remain fully committed to maintaining compatibility of UWP projects created with Visual Studio 2015 in Visual Studio 2017, we will provide new experiences in Visual Studio 2017 to help migrate your projects to use the new PackageReference format. This release starts us down this path by ensuring that new projects targeting the Creators Update SDK use PackageReference by default for expressing NuGet dependencies. Projects that target SDKs prior to the Creators Update will still continue to use project.json to express their NuGet dependencies so they can be edited in Visual Studio 2015. In an upcoming Preview release, if you re-target older UWP projects in Visual Studio 2017 to target the Creators Update SDK, we will automatically migrate all references from project.json to the new MSBuild-based PackageReference format.
New .NET Native compiler distributed as a NuGet package
The .NET Native compiler has a number of new improvements and fixes that you can read more about on the .NET blog. In particular, the .NET Native compiler is now distributed as a NuGet package bundled with the Microsoft.NETCore.UniversalWindowsPlatform package. This will allow future updates to the compiler without requiring updates to Visual Studio.
In an upcoming preview release, new projects created in Visual Studio 2017 that target the Creators Update SDK will reference the 5.3.x Universal Windows Platform NuGet package by default, and hence take advantage of the .NET Native compiler improvements by default. Projects that target an SDK prior to Creators Update still use the 5.2.x version of the Universal Windows Platform NuGet package, and can be manually updated to the newer version. Please note that making this update means the project can no longer be built using the Visual Studio 2015 tools.
Better Visual Studio integration for XAML controls delivered as NuGet packages
We have made several improvements across Visual Studio to have better support for NuGet packages when they contain XAML controls and libraries. The toolbox in Visual Studio now lists controls with custom icons from the NuGet package as soon as the package is added to the project. The XAML designer is also capable of extracting styles/template for such controls, as well as reading design-time metadata to enhance your productivity of working with the designer.
You can see an example of such a NuGet package here.
Support for detecting SDK version specific code in XAML
In this release we now detect XAML types and properties that only exist in certain versions of the SDK and show them with squiggles in the XAML editor. This lets you make an informed decision on whether the XAML you specify will work on all versions of Windows that you expect your app to run on. In future releases, we will be adding more safe-guards to the XAML authoring experience and will provide you the ability to write conditional expressions to use these properties and types in newer version of the platform.
Command Line Arguments in Debug Mode
If your app accepts activation arguments, you can now configure these values from the new Command Line Arguments property in the Debug Configuration page. The screenshot below shows this in action for C# and VB projects, but you will soon be able to do this with C++ projects as well. You will receive these values in the App.OnLaunched event in the LaunchActivatedEventArgs.Arguments property – thereby allowing you to dynamically change the execution patterns of your app (for example, running some test code).
UWP streaming install support
This version of Visual Studio 2017 is the first to let you create streaming UWP packages. To support streaming install in your app, you will need to create a SourceAppxContentGroupMap.xml file that defines your content groups and the files within them. From there, you can use Visual Studio to create the final AppxContentGroupMap.xml by right clicking on the project, and selecting Store -> Convert Content Group Map File. You can learn more here.
This preview includes the Python development workload, which includes support for editing and debugging Python scripts and web sites, as well as iterative development using the interactive window.
We want your feedback!
Go ahead and install Visual Studio Preview to start developing with the latest tools. Please keep in mind that Visual Studio Preview is for non-production development only. If you encounter any issues, please let us know using our Report-a-Problem tool to add or upvote an existing issue in our Developer Community. To make a suggestion or request to our engineering team, go to our UserVoice page.
|Daniel Jacobson, Program Manager for Visual Studio
Daniel is a Program Manager on Visual Studio focused on tools for Universal Windows Platform developers and NuGet. He found his passion in software development after graduating with an M.S. in Mechanical Engineering from Case Western Reserve University in 2014.