Announcing September 2016 Updates for .NET Core 1.0

Today, we are releasing a set of reliability and quality updates for .NET Core 1.0. The quickest way to get the updates is to head over to dot.net/core and follow the updated install instructions for your operating system. You can download and install the update as an MSI for Windows, a PKG for macOS and updated zips and packages for Linux OSes. If you don’t yet have .NET Core, you can start with this release. It contains everything you need to get started.

We are calling this release .NET Core 1.0.1. It is the first .NET Core 1.0 Long Term Support (LTS) update. We recommend that everyone move to it immediately. You need to be on the latest LTS release to get support from Microsoft.

We’ve talked about future updates to .NET Core, including adopting MSBuild and establishing .NET Standard 2.0. These changes will be included in an upcoming feature release and not in a patch version like the one we are releasing today.

Updating your Machine to use .NET Core 1.0.1

.NET Core versions are installed side-by-side. After installing .NET Core 1.0.1, you will have two .NET Core versions on your machine, assuming that you already had .NET Core 1.0.0 installed. The installation of .NET Core 1.0.1 does not delete or otherwise update your .NET Core 1.0.0 installation.

.NET Core has a roll-forward policy for patch versions (the 3rd part of the version number, per semver). We only include important quality and reliability updates in patch versions. We do not include new features in patch versions. After you install .NET Core 1.0.1, apps that previously used .NET Core 1.0.0 will automatically use .NET Core 1.0.1. This policy results in apps running on a more secure and reliable version of .NET Core. The roll-forward policy only applies to patch versions. For example, an app built for .NET Core 1.0.0 will roll forward to 1.0.100, but not to 1.1.0 or 2.0.0.

Updating your Application to use .NET Core 1.0.1

You don’t need to do anything to get your application to use .NET Core 1.0.1. It will roll-forward to .NET Core 1.0.1 by default, as discussed above. You can set .NET Core 1.0.1 as the minimum version for your app by updating your .NET Core metapackage reference to Microsoft.NETCore.App 1.0.1. An app configured this way will no longer run on .NET Core 1.0.0, even if it’s the only .NET Core version on a machine.

You do need to make a change to update to ASP.NET Core 1.0.1 and Entity Framework 1.0.1, by referencing a newer NuGet package. You can see examples of that in the ASP.NET Core 1.0.1 blog post.

What you can do if you have trouble with .NET Core 1.0.1

There are a few options to work around having trouble with .NET Core 1.0.1.

You can opt specific apps out of the roll-forward policy. This approach is only encouraged as a short-term option, to determining why an app isn’t working correctly and to fix it. Apps that are configured this way for an extended period of time may run in an insecure state without anyone realizing it. You can configure an app to not roll forward by setting applyPatches to false in app.runtimeconfig.json file. Again, it’s not recommended to use this approach for an extended period of time.

The other approach is to uninstall .NET Core 1.0.1. Your machine will return to using .NET Core 1.0.0, assuming that you already had it installed. You can uninstall .NET Core 1.0.1 using the installer or delete the 1.0.1 Microsoft.NETCore.App directory manually. You can find out where .NET Core is installed on your machine by using where on Windows and which on macOS. Example: where dotnet.

Windows: C:\Program Files\dotnet\shared\Microsoft.NETCore.App

macOS: /usr/local/share/dotnet/shared/Microsoft.NETCore.App

On Linux, you can uninstall .NET Core 1.0.1 with your package manager if you installed it that way. If you installed it via a .zip or .tar.gz then you can use simple file operations to add or remove .NET Core versions. If you don’t know how .NET Core was installed and don’t know how to find it, you can use the following command to find it:

Closing

Please upgrade to today’s release. We’ve included security and reliability updates that are important to ensure that your apps are secure, reliable and have great performance. Today’s release is the first update for .NET Core. As we make future updates, the approach to updating your .NET Core installation and your apps will get more familiar and straightforward.

Thanks to everyone who has installed and used .NET Core, ASP.NET Core and Entity Framework Core. We appreciate all of the feedback that we’ve received from you and please keep it coming.

Fails to install on my machine (Error 0x80070666: Process returned error: 0x666). The error message says that “Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel.”. Trying to remove the product using Add/Remove Programs though does nothing.

Is this an issue because I have VS15 installed on the machine in addition to VS2015?

The answer at the link below worked for me. Summary: install log shows download of VC_redist.x64.exe (VC++ redistributable) but failure to verify the payload (anyone knows why?). Solution: manually download and run VC_redist.x64.exe, then run the .NET installer.

1.0.1 installed just fine using the preview tools package.
“dotnet restore” also worked.
But “dotnet run” failed with this error:

Can not find runtime target for framework ‘.NETCoreApp,Version=v1.0’ compatible with one of the target runtimes: ‘win10-x64, win81-x64, win8-x64, win7-x64’. Possible causes:
1. The project has not been restored or restore failed – run `dotnet restore`
2. The project does not list one of ‘win10-x64, win81-x64, win8-x64, win7-x64’ in the ‘runtimes’ section.
3. You may be trying to publish a library, which is not supported. Use `dotnet pack` to distribute libraries.

We created a test project with “dotnet new” and compared the project.json file to our 1.0.0 version. The Microsoft.NETCore.App node has moved from the root dependencies node to frameworks.netcoreapp1.0.dependencies and looks a bit different. After a bit of copy/paste we got our project running again.

“After installing .NET Core 1.0.1,” — ahh, why can’t we just have step by step instructions? If one clicks on that link it takes you to a page that has a number of links, none of them saying “.NET Core 1.0.1”. There’s one for “.NET Core 1.0.1 – VS 2015 Tooling Preview 2” — is this the one? (probably)

Look, we can figure all this stuff out, but why make us work when it could be as simple as: 1. Install this (direct link) and 2. Update your project.json to 1.0.1 for the following assemblies. It would be easier for us and for you as well (shorter blog post).

Damn, straight. Microsoft always seems clueless with updates and upgrades. They really seem like a bunch of idiots sometimes. I agree, gimme the link, let me install and give me instructions on which assemblies to update in project.json.

We intend to have multiple releases each year like this to fix issues that many people are seeing (for example, the Linux segfaults). This release also included a security advisory, which very much required a release. We will have big and small releases. Both types are important for a healthy product and happy users.

A word of warning. In the following scenario:
1) install DotNetCore.1.0.1-Runtime-x64.exe
2) install DotNetCore.1.0.0-Runtime-x64.exe
3) uninstall DotNetCore.1.0.1
dotnet.exe (%ProgramFiles%\dotnet\dotnet.exe) and the host directory (%ProgramFiles%\dotnet\host) will be deleted, leaving only %ProgramFiles%\dotnet\shared\Microsoft.NETCore.App\1.0.0 present. An attempt to repair .NET Core 1.0.0 through Programs and Features will prompt for source files (“dotnet-win-x64.1.0.0”, in my case), making the repair function unusable. The only way to fix the installation of 1.0.0 in this scenario seems to be uninstall it and install again.

I’ve uninstalled all the previous SDKs and tools and installed only this update and I’m still getting a “unable to start the process” in VS 2015 on a brand new project I just created. What am I doing wrong here?

Upgraded vs2015 to use 1.0.1, but when I deploy to new staging web server, get error in IIS when I click on any icon. It can not read the web.config file? 500.19 error, but no other error information. I know that I installed the first versions of CORE on my Dev and QA box, but this is a new staging server so I think just the 1.0.1 is installed. Not sure if that is why? Not sure how to troubleshoot?