【发布时间】: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