【问题标题】:Visual Studio won't build the ASP.NET Core project it createdVisual Studio 不会构建它创建的 ASP.NET Core 项目
【发布时间】:2019-04-07 02:57:51
【问题描述】:

我已经进行了几周的 asp.net 核心开发,没有出现任何问题。今天早上,我创建了一个新的 ASP.NET 核心 API Web 项目。它生成了项目,但是当我尝试打开它时,它不会打开。我去了添加或删除程序并打开了安装程序以修复我的 VS 2017,但注意到有一个更新的版本,所以我升级了。

升级后,它会打开项目,但是当它构建时,它不会构建。修复了VS 2017,仍然无法构建。修复了 asp.net 核心安装,仍然没有构建。卸载asp.net core,然后重新安装。仍然没有构建。

Microsoft.AspNetCore.Razor.Design (2.1.2) 上有一个黄色警告图标

我被难住了。构建时我没有收到任何消息,除了:

1>------ Rebuild All started: Project: EmployeeDirectory, Configuration: Release Any CPU ------
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

打开诊断日志并没有给我更多,除了它似乎与依赖关系有关:

Restoring NuGet packages...
To prevent NuGet from restoring packages during build, open the Visual Studio Options dialog, click on the NuGet Package Manager node and uncheck 'Allow NuGet to download missing packages during build.'
Running restore with 8 concurrent jobs.
Reading project file C:\Software Development\EmployeeDirectory\EmployeeDirectory\EmployeeDirectory.csproj.
Restoring packages for C:\Software Development\EmployeeDirectory\EmployeeDirectory\EmployeeDirectory.csproj...
Restoring packages for .NETCoreApp,Version=v2.1...
Resolving conflicts for .NETCoreApp,Version=v2.1...
Checking compatibility of packages on .NETCoreApp,Version=v2.1.
Checking compatibility for EmployeeDirectory 1.0.0 with .NETCoreApp,Version=v2.1.
All packages and projects are compatible with .NETCoreApp,Version=v2.1.
Committing restore...
Assets file has not changed. Skipping assets file writing. Path: C:\Software Development\EmployeeDirectory\EmployeeDirectory\obj\project.assets.json
Writing cache file to disk. Path: C:\Software Development\EmployeeDirectory\EmployeeDirectory\obj\EmployeeDirectory.csproj.nuget.cache
Restore completed in 1.08 ms for C:\Software Development\EmployeeDirectory\EmployeeDirectory\EmployeeDirectory.csproj.

NuGet Config files used:
    C:\Users\pd7562\AppData\Roaming\NuGet\NuGet.Config
    C:\Program Files (x86)\NuGet\Config\Microsoft.VisualStudio.Offline.config

Feeds used:
    https://api.nuget.org/v3/index.json
    C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
NuGet package restore finished.
1>------ Rebuild All started: Project: EmployeeDirectory, Configuration: Release Any CPU ------
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

我的版本信息:

Microsoft Visual Studio Professional 2017 
Version 15.8.8
VisualStudio.15.Release/15.8.8+28010.2048
Microsoft .NET Framework
Version 4.7.03056

Installed Version: Professional

ASP.NET and Web Tools 2017   15.8.05085.0
ASP.NET and Web Tools 2017

ASP.NET Core Razor Language Services   15.8.31590
Provides languages services for ASP.NET Core Razor.

dotnet --list-runtimes
Microsoft.AspNetCore.All 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

 dotnet --list-sdks
 2.1.200 [C:\Program Files\dotnet\sdk]
 2.1.202 [C:\Program Files\dotnet\sdk]
 2.1.402 [C:\Program Files\dotnet\sdk]
 2.1.403 [C:\Program Files\dotnet\sdk]

Nuget 显示未安装任何软件包。如果我使用 nuget 管理器添加包,它似乎可以工作,但我的问题从未解决:

PM> Install-Package Microsoft.AspNetCore.Razor.Design -Version 2.1.2
Restoring packages for C:\Software Development\Angular\EmployeeDirectory\EmployeeDirectory\EmployeeDirectory.csproj...
Installing NuGet package Microsoft.AspNetCore.Razor.Design 2.1.2.
Committing restore...
Generating MSBuild file C:\Software Development\Angular\EmployeeDirectory\EmployeeDirectory\obj\EmployeeDirectory.csproj.nuget.g.props.
Writing lock file to disk. Path: C:\Software Development\Angular\EmployeeDirectory\EmployeeDirectory\obj\project.assets.json
Restore completed in 207.61 ms for C:\Software Development\Angular\EmployeeDirectory\EmployeeDirectory\EmployeeDirectory.csproj.
Successfully installed 'Microsoft.AspNetCore.Razor.Design 2.1.2' to EmployeeDirectory
Executing nuget actions took 246.18 ms
Time Elapsed: 00:00:00.5725993

完全被难住了...有什么想法吗?

更新 1

卸载并重新安装 VS 2017。问题仍然存在。我决定创建新类型的项目,但我现在遇到了不同的错误。尝试创建 Windows 窗体应用程序,但出现错误:

"Invalid static method invocation syntax: '[Microsoft.Build.Utilities.ToolLocationHelper]::GetPathToStandardLibraries($(TargetFrameworkIdentifier),$(TargetFrameworkVersion), $(TargetFrameworkProfile), $(PlatformTarget), $(TargetFrameworkRootPath), $(TargetFrameworkFallbackSearchPaths))'. Method 'Microsoft.Build.Utilitieis.ToolLocationHelper.GetPathToStandardLibraries' not found. Static method invocation should be of the form: $([FullTypeName]::Method()) e.g. $([System.IO.Path]::Combine('a', 'b')). C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.CurrentVersion.targets"

更新 2

该软件包似乎已全局安装:在C:\Users\[UserName]\.nuget\packages\microsoft.aspnetcore.razor.design\2.1.2

是否有可能只是路径错误或缺少环境变量导致找不到?有谁知道这是怎么处理的?

更新 3

dotnet --version
2.1.403

更新 4

我怀疑我的问题可能与构建日志中的这个有关:

NuGet Config files used:
    C:\Users\pd7562\AppData\Roaming\NuGet\NuGet.Config
    C:\Program Files (x86)\NuGet\Config\Microsoft.VisualStudio.Offline.config

当我转到工具/选项中的 NuGet 包管理器/包源时,对于“机器范围的包”,它只显示“Microsoft Visual Studio 脱机包”但我的 2015 安装显示“Microsoft 和 .NET " 之前的条目。这些无法编辑,看起来不像。

我清除了用户 directory.nuget\packages 下的包目录,它似乎没有将新包检索到该目录中。我认为这是需要解决的根本问题。我只是不确定如何。

【问题讨论】:

  • 尝试卸载除 2.1.403 之外的所有 .NET Core 版本(反正你不需要那些旧版本)
  • 完成:dotnet --list-sdks 2.1.403 [C:\Program Files\dotnet\sdk] 问题仍然存在
  • 卸载旧 .NET 版本后重新启动 Visual Studio / 计算机? :-)
  • 是的。重新启动。没有变化。
  • 我认为问题可能是 nuget 并没有实际安装包。没有创建包目录。如果我删除了软件包然后去 nuget 安装它,它就像它安装得很好,但“安装”按钮仍然处于激活状态,我从来没有得到卸载选项。

标签: c# visual-studio asp.net-core nuget


【解决方案1】:

似乎在 15.8.0 版本中出现了类似的问题,并且针对该故障的相同修复对我有用。在这两种情况下,问题都是由 Visual Studio 更新引起的。

我在这里找到了解决方案:https://developercommunity.visualstudio.com/content/problem/311136/update-to-1580-projects-wont-load.html

解决方案是退出 Visual Studio 并从开发人员命令提示符运行以下命令:

gacutil /u "MSBuild, Version=15.1.0.0"
gacutil /u "Microsoft.Build.Conversion.Core, Version=15.1.0.0"
gacutil /u "Microsoft.Build, Version=15.1.0.0"
gacutil /u "Microsoft.Build.Engine, Version=15.1.0.0"
gacutil /u "Microsoft.Build.Tasks.Core, Version=15.1.0.0"
gacutil /u "Microsoft.Build.Utilities.Core, Version=15.1.0.0"
gacutil /u "Microsoft.Build.Framework, Version=15.1.0.0"

在我的系统上,前 2 个没有做任何事情,但其他 6 个从 GAC 卸载了适当的东西。但是,为了完整起见,我将前 2 个包括在内。

当我重新启动 Visual Studio 时,它说它正在设置东西,就好像这是我自安装以来第一次运行它一样。

我现在能够构建我的 ASP.NET 核心项目,并且能够生成和打开其他给我带来问题的项目类型。

希望这对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-23
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多