This short post covers how to resolve the Microsoft.DotNet.Web.targets was not found issue. This might happen when importing existing asp.net MVC projects within your Visual Studio solution.
Microsoft.DotNet.Web.targets file missing
I’m currently porting some ASP.NET MVC project to .Net Core and running into a quite annoying issue. Every time I’m importing an existing project.json project file (asp.net mvc based project), I’m running into the following error:
The imported project “C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\ Microsoft.DotNet.Web.targets” was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.
And as the error message suggests, the file Microsoft.DotNet.Web.targets was indeed missing from the directory C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\
I’m not totally sure why this is happening. However, I think that this is related to the fact that I’ve installed different beta and pre-release versions of the .net core framework. Resolving the issue is simple and I’ve provided the steps below.
How to solve the issue
- CD into or open the location C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet.Web
- Locate the file called Microsoft.DotNet.Web.targets
Note: In case the file is missing, you can download a copy here. Rename to Microsoft.DotNet.Web.targets
- Copy this file to C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0 however make sure you are an administrator or the operation will fail.
- At this point you will need to delete the previously generated your_project_name.xproj file. This file should be located in the same folder as the project.json file.
- Now you should be able to add the project without any problems.
I ran into numerous issues when trying to port existing code and therefore have to address how important it is to have the correct .Net Core version and tooling installed. The .NET Core Downloads https://www.microsoft.com/net/download#core page lists the binaries for every platform.
Note: .NET Core 1.0 runtime has been released officially as version 1.0. But the tooling around .NET Core remains in a Preview state.
You can find more information about framework and tooling versions in this article on hansleman.com.