问题
When I create default web project in Visual Studio 2015 (Update 3) with installed .NET Core 1.0 SDK and Tooling (preview 2) and restart the Visual Studio after reverting local source control changes I am getting the following compilation error:
Failed to make the following project runnable: MyDefaultWebProject (.NETCoreApp,Version=v1.0) reason: Object reference not set to an instance of an object.
According to Visual Studio the error is located in C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Common.Targets
on line 262
On this line there is the following code:
<Dnx
RuntimeExe="$(SDKToolingExe)"
Condition="'$(_DesignTimeHostBuild)' != 'true'"
ProjectFolder="$(MSBuildProjectDirectory)"
Arguments="$(_BuildArguments)"
/>
How can I fix such a problem?
回答1:
The only working solution I managed to find is to run the dotnet restore
command:
C:\Dev\*****>dotnet restore
Welcome to .NET Core!
---------------------
Learn more about .NET Core @ https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs.
Telemetry
--------------
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include commandline arguments. The data is collected by Microsoft and shared with the community.
You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell.
You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
Configuring...
-------------------
A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
Decompressing 100% 2181 ms
Expanding 100% 9113 ms
log : Restoring packages for C:\Dev\*****\project.json...
log : Restoring packages for tool 'BundlerMinifier.Core' in C:\Dev\*****\project.json...
log : Restoring packages for tool 'Microsoft.AspNetCore.Razor.Tools' in C:\Dev\*****\project.json...
log : Restoring packages for tool 'Microsoft.AspNetCore.Server.IISIntegration.Tools' in C:\Dev\*****\project.json...
log : Restoring packages for tool 'Microsoft.EntityFrameworkCore.Tools' in C:\Dev\*****\project.json...
log : Restoring packages for tool 'Microsoft.Extensions.SecretManager.Tools' in C:\Dev\*****\project.json...
log : Restoring packages for tool 'Microsoft.VisualStudio.Web.CodeGeneration.Tools' in C:\Dev\*****\project.json...
log : Writing lock file to disk. Path: C:\Dev\*****\project.lock.json
log : C:\Dev\*****\project.json
log : Restore completed in 13207ms.
after which the compilation in Visual Studio is successful again.
回答2:
In my case the problem was that one of the class library projects in a solution was referencing an AspNetCore.Identity
library by the absolute path when I pulled sources from the source control. Because of that - wrong paths were generated in project.fragment.lock.json
file and solution couldn not build.
Fixing that absolute path reference in .csproj
file made it work.
来源:https://stackoverflow.com/questions/38328677/failed-to-make-the-following-project-runnable-object-reference-not-set-to-an-in