系统无法找到Visual Studio 2017 ASP.NET核心项目

问题描述 投票:39回答:17

我已经安装了新发布的Visual Studio 2017版本,并开始了一个针对.NET Core的全新ASP.NET Core项目。

开箱即用,我得到了

找不到类型或命名空间名称'System'(您是否缺少using指令或程序集引用?)

错误。知道是什么导致了这个以及如何解决它?

enter image description here

此外,看起来NuGet包也存在问题:enter image description here

我还通过命令行尝试了对项目的dotnet恢复,并得到以下错误:enter image description here

附:令人沮丧的是,您在最新版本的Visual Studio 2017中的新项目中出现错误!

更新:SDK版本是v 1.0.1 - 见下文:enter image description here

更新2:这很奇怪。看起来原始问题是由于NuGet包源指向Visual Studio 2015文件夹下的文件夹。我取消选中它并只留下nuget.org。有了这个,我的项目似乎已经恢复了所有的包,当我启动项目时,它加载标准的ASP.NET页面。但是,如果我打开startup.cs文件,我会在整个地方得到红色的波浪线,但如果我运行该项目,它工作正常。这里发生了什么? enter image description here

更新3:我关闭了项目和VS 2017.然后我重新启动VS 2017并打开项目,现在看起来没问题。而且我没有引用.NETStandard库1.6.1,现在一切似乎都运行良好。

asp.net-core .net-core visual-studio-2017
17个回答
26
投票

今天遇到了同样的问题。我有一个不再存在的古老的nuget来源。所以我进入了Tools> Nuget Packet Manager并取消了错误的检查。点击“确定”,然后重建项目,现在效果很好。看起来你偶然发现它,但也想验证它解决了我的问题,而且确实如此。

enter image description here


0
投票

不太清楚2017年试图解决包裹的顺序。但我的情况如下。在我的VS2015中,我为nuget包配置了本地和第三方源,2017年新安装的版本也加载了它们。

https://api.nuget.org/v3/index.json排在首位。

但vs2017抛出一个错误,它无法从我的另一个本地仓库恢复.net核心库。

在我取消选中除https://api.nuget.org/v3/index.json之外的所有这些之后,它已经开始正常工作了。


0
投票

我也有这个问题,但现在不行,这个步骤解决了我的问题:从菜单栏中选择Project - > Properties。在“项目属性”窗口的“配置属性” - >“常规”下,确保将“公共语言运行时支持”设置为“公共语言运行时支持”(/ clr)


0
投票

只需打开NuGet包管理器,然后打开与之相关的Visual Studio设置 - 无需更改任何内容 - 只需环顾四周,当我关闭时,问题就消失了。

这似乎是一个间歇性的问题,没有明显的原因可以来来去去。


0
投票

尝试在csproj文件中的其他引用上方添加以下行

<Reference Include="netstandard" />


0
投票

对我来说问题是由我的项目有自定义IntermediateOutputPath引起的。出于某种原因,如果project_name.csproj.nuget.g.targets不在项目文件夹的obj子文件夹中,则会发生错误。

使用默认的IntermediateOutputPath或在假project_name.csproj.nuget.g.targets文件夹中保留obj的卷影副本解决了我的问题。


0
投票

这里没有任何答案对我有用,所以我发布了什么工作。我的错误大多与原始海报相同,但我也有:

加载'Microsoft.Extensions.FileProviders.Embedded.2.0.1'元数据的十六进制值0x1C无效字符时出错

每次我尝试下载不同的nuget包或恢复旧包时,我都会看到此错误。我还看到了其他错误,例如:

找不到类型或命名空间系统


什么对我有用:

  1. 打开错误说错误元数据所在的文件路径,对我来说是C:\ Program Files \ dotnet \ sdk \ NuGetFallbackFolder \ microsoft.extensions.fileproviders.embedded \ 2.0.1
  2. 然后,我将该文件夹的内容放入另一个名为“hidden”的文件夹中。
  3. 然后,我回到nuget包管理器并尝试安装包,希望恢复SDK。 IOt工作成功,我的所有其他错误都消失了,新的新项目应该运行!

0
投票

当我使用单独的用户以管理员身份运行Visual Studio时,我遇到了问题 - 我在普通帐户的用户文档中创建了一个包含源文件的Git Repo。当我在该文件夹中创建新解决方案时,发生了上述错误。尝试在其他位置创建项目,看看是否仍然出现错误。


0
投票

找到损坏的项目并右键单击,卸载,右键单击,重新加载。最快的解决方案。

如果您在使用CLI时遇到问题,请尝试使用nuget restore而不是dotnet restore,因为这有时会降低dotnet CLI似乎错过的软件包。


31
投票

我在Visual Studio 2017 .Net Core应用程序中遇到了同样的问题。我关闭了Visual studio并重新打开修复了所有内容。


17
投票

我遇到了同样的问题,首先将VS2015网络核心mvc web项目转换为2017年,然后在2017年尝试创建新的核心Web应用程序时。

去工具| NuGet包管理器|包管理器设置 - 选中'允许NuGet下载丢失的包'和'在VS中构建期间自动检查丢失的包',然后点击'清除所有NuGet缓存'。

然后重新构建解决方案 - 找到并加载所有必需的包并运行OK。

可能不适用于所有情况但简单且值得一试。


6
投票

多次关闭和重新打开VS2017为我修复了它。


5
投票

检查CMD中的.NET命令行工具版本,只需键入dotnet --info即可。如果版本是1.0.0,那么尝试从here安装最新版本的.NET Core SDK。

enter image description here


3
投票

我有同样的问题,我的解决方案是清除NuGet缓存。工具> NuGet包管理器>包管理器设置>清除所有NuGet缓存


1
投票

这个问题似乎是由无数的原因引发的。我是使用Git Bash直接从VSTS克隆造成的,我的项目目录中有空格。 Git Bash将路径中的空格更改为%20。它抛弃了我项目中的所有引用。因此,对于那些尝试过其他所有事情并且最终处于智慧状态的人来说,请确保%20不在路径中。


0
投票

有同样的问题。使用nuget包管理器从我的项目中卸载了Application Insights。我还没看好,我只想要核心和单元测试。问题解决了。


0
投票

我也有同样的问题。在依赖项下没有SDK文件夹。因此,没有Microsoft.NetCore.App库!

要解决此问题,请在Nuget管理器窗口中安装依赖于.NetCoreApp的任何nuget(您可以从Microsoft Visual Studio Offline Packages源安装例如Microsoft.AspNetCore或BundlerMinifier.Core)。

SDK将同时恢复。

一旦它返回,您可以卸载以前添加的nuget。 SDK将保留在原位。

© www.soinside.com 2019 - 2024. All rights reserved.