找不到系统 Visual Studio 2017 ASP.NET 核心项目
System could not be found Visual Studio 2017 ASP.NET Core project
我已经安装了新发布的 Visual Studio 2017 版本,并开始了一个全新的 ASP.NET 核心项目,目标是 .NET Core。
开箱即用,我得到
The type or namespace name 'System' could not be found (are you
missing a using directive or an assembly reference?)
错误。知道是什么原因造成的以及如何解决吗?
另外,看起来 NuGet 包也有问题:
我也通过命令行在项目上尝试了dotnet restore,得到如下错误:
P.S。有点令人沮丧的是,您在 Visual Studio 2017 的最新版本中的一个全新项目中遇到错误!
更新:
SDK 版本是 v 1.0.1——见下文:
更新 2:
这很奇怪。看起来最初的问题是由于 NuGet 包源指向 Visual Studio 2015 文件夹下的文件夹。我取消选中它,只留下 nuget.org。这样一来,我的项目似乎已经恢复了所有包,当我启动项目时,它加载了标准 ASP.NET 页面。但是如果我打开 startup.cs 文件,我会在整个地方看到红色的波浪线,但是如果我 运行 项目,它工作正常。这里发生了什么?
更新 3:
我关闭了项目和VS 2017。然后我重新启动了VS 2017并打开了项目,现在似乎没问题了。而且我没有引用 .NETStandard 库 1.6.1,现在一切似乎都运行良好。
在CMD中查看.NET命令行工具的版本,输入dotnet --info
即可。如果版本是 1.0.0
,则尝试从 here.
安装最新版本的 .NET Core SDK
今天遇到了同样的问题。我有一个不再存在的旧 nuget 源。所以我进入工具 > Nuget 数据包管理器并取消选中错误的那个。点击 "Ok",然后重建项目,现在运行良好。看起来你是偶然发现的,但也想验证它是否解决了我的问题,它确实解决了。
我遇到了同样的问题,首先是在将 VS2015 net core mvc web 项目转换为 2017 时,然后是在 2017 年尝试创建新的核心 web 应用程序时。
转到工具|NuGet 包管理器|包管理器设置 - 选中 'Allow NuGet to download missing packages' 和 'Automatically check for missing packages during build in VS',然后单击 'Clear All NuGet Cache(s)'。
然后重新构建解决方案 - 它找到并加载了所有必需的包并且 运行 OK。
可能并非适用于所有情况,但简单且值得一试。
我的 Visual studio 2017 .Net Core 应用程序遇到了同样的问题。我关闭了 Visual studio 并重新打开修复了所有问题。
有同样的问题。使用 nuget 包管理器从我的项目中卸载了 Application Insights。我还没有看那个,我只是想要核心和单元测试。问题已解决。
我遇到了同样的问题,我的解决方案是清除 NuGet 缓存。工具 > NuGet 包管理器 > 包管理器设置 > 清除所有 NuGet 缓存
我也遇到了同样的问题。
Dependencies 下没有 SDK 文件夹。因此,没有 Microsoft.NetCore.App 个库 !
要解决此问题,请在 Nuget 管理器 window 中安装任何依赖于 .NetCoreApp 的 nuget(例如,您可以安装 Microsoft.AspNetCore 或 BundlerMinifier.Core 来自 Microsoft Visual Studio离线包源)。
SDK将同步恢复
回来后就可以卸载之前添加的nuget了。 SDK 将保留在原位。
不太确定与 2017 年尝试解析包的顺序。
但是我的情况如下。在我的 VS2015 中,我为 nuget 包配置了本地和第三方源,新安装的 2017 版本也加载了它们。
https://api.nuget.org/v3/index.json 排在第一位。
但是 vs2017 抛出了一个错误,它无法从我的另一个本地存储库恢复 .net 核心库。
除https://api.nuget.org/v3/index.json以外的所有选项我都取消勾选后,它开始正常工作了。
多次 VS2017 的关闭和重新打开为我修复了它。
找到损坏的项目并右键单击,卸载,右键单击,重新加载。对我来说最快的修复。
如果您在使用 CLI 时遇到问题,请尝试 nuget restore
而不是 dotnet restore
,因为这有时会下载 dotnet CLI 似乎遗漏的包。
我也有这个问题,但不是现在,这个步骤解决了我的问题:从菜单栏中选择项目 -> 属性。在项目属性 window 中,在配置属性 -> 常规下,确保公共语言运行时支持设置为公共语言运行时支持 (/clr)
只需打开 NuGet 包管理器,然后打开与之相关的 Visual Studio 设置 - 无需更改任何内容 - 只是环顾四周,当我关闭时,问题不见了。
这似乎是一个间歇性的问题,可以来来去去,没有明显的原因。
尝试在 csproj 文件
中的其他引用上方添加以下行
<Reference Include="netstandard" />
对我来说,问题是由于我的项目有一个自定义 IntermediateOutputPath
。由于某种原因,如果 project_name.csproj.nuget.g.targets
不在项目文件夹的 obj
子文件夹中,则会发生错误。
使用默认 IntermediateOutputPath
或在假 obj
文件夹中保留 project_name.csproj.nuget.g.targets
的卷影副本可以解决我的问题。
None 这里的答案对我有用 所以我发布了有用的答案。
我的错误与最初的发布者基本相同,但我也有:
加载 'Microsoft.Extensions.FileProviders.Embedded.2.0.1' 的元数据时出错
十六进制值 0x1C 无效字符
每次我尝试下载不同的 nuget 包或恢复旧包时,我都会看到此错误。我还看到了其他错误,例如:
找不到类型或命名空间系统
对我有用的:
- 打开错误说错误元数据所在的文件路径,对我来说是 C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.fileproviders.embedded.0.1
- 然后,我将该文件夹的内容放入另一个我命名为 "hiding" 的文件夹中。
- 然后又回到nuget包管理器尝试安装包,希望能恢复SDK。 IOt 成功运行,我的所有其他错误也都消失了,全新的项目正常运行!
我的问题发生在 运行 我的 Visual Studio 作为管理员和一个单独的用户 -- 我用我的用户文档中的源文件创建了一个 Git 回购普通账户。当我在该文件夹中创建新解决方案时,出现了上述错误。尝试在不同的地方创建项目,看看错误是否仍然存在。
这个问题似乎是由多种原因引发的。我的是使用 Git Bash 直接从 VSTS 克隆造成的,我的项目目录中有空格。 Git Bash 将路径中的那些空格更改为 %20。它抛弃了我项目中的所有引用。因此,对于尝试了所有其他方法却束手无策的人,请确保 %20 不在路径中。
我在 VS2019 中创建新项目 (.net Core 2.2) 时遇到了同样的问题。以我为例是一个正在创建 problem.I 的 Azure 包,将其卸载后项目开始正常运行。
运行 下面提到的卸载软件包的命令。
Uninstall-Package Microsoft.VisualStudio.Azure.Containers.Tools.Targets -Version 1.7.10
我在 Visual Studio 2019 和 .NET Core SDK 2.2 中遇到了同样的问题。
这些步骤解决了问题:
- 关闭Visual Studio
- 以管理员身份打开Visual Studio
- 打开解决方案
- 右键单击“解决方案”->“还原 NuGet 包”
以上所有答案我都试过了。对我来说,仅 删除并再次添加引用 如下所述:
- 在项目下打开'References'。
- 右键单击 'System' 引用。
- 单击 'Remove'。
- 右键单击 'References'。
- 点击'Add Reference...'。
- 从右侧菜单中选择 'Assemblies'、
- 在搜索字段中键入 'System'。
- 从列表中选择 'System'。
- 单击 'Add' 按钮。
- 重要提示:重新启动 Visual Studio。
'System'参考你可以替换成任何你需要的。
所以,我从 github 克隆了存储库并开始收到此错误。
这是我从另一台机器上传的项目。后来我发现我在我的项目中使用了materialdesign包。
我已经卸载并重新安装了这些软件包,它解决了我的问题。
我遇到了同样的问题。我克隆了一个 github 项目,出现了这个错误。所以我删除了克隆的项目,然后我再次克隆了这个项目,它工作正常。
我已经安装了新发布的 Visual Studio 2017 版本,并开始了一个全新的 ASP.NET 核心项目,目标是 .NET Core。
开箱即用,我得到
The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?)
错误。知道是什么原因造成的以及如何解决吗?
另外,看起来 NuGet 包也有问题:
我也通过命令行在项目上尝试了dotnet restore,得到如下错误:
P.S。有点令人沮丧的是,您在 Visual Studio 2017 的最新版本中的一个全新项目中遇到错误!
更新:
SDK 版本是 v 1.0.1——见下文:
更新 2:
这很奇怪。看起来最初的问题是由于 NuGet 包源指向 Visual Studio 2015 文件夹下的文件夹。我取消选中它,只留下 nuget.org。这样一来,我的项目似乎已经恢复了所有包,当我启动项目时,它加载了标准 ASP.NET 页面。但是如果我打开 startup.cs 文件,我会在整个地方看到红色的波浪线,但是如果我 运行 项目,它工作正常。这里发生了什么?
更新 3: 我关闭了项目和VS 2017。然后我重新启动了VS 2017并打开了项目,现在似乎没问题了。而且我没有引用 .NETStandard 库 1.6.1,现在一切似乎都运行良好。
在CMD中查看.NET命令行工具的版本,输入dotnet --info
即可。如果版本是 1.0.0
,则尝试从 here.
今天遇到了同样的问题。我有一个不再存在的旧 nuget 源。所以我进入工具 > Nuget 数据包管理器并取消选中错误的那个。点击 "Ok",然后重建项目,现在运行良好。看起来你是偶然发现的,但也想验证它是否解决了我的问题,它确实解决了。
我遇到了同样的问题,首先是在将 VS2015 net core mvc web 项目转换为 2017 时,然后是在 2017 年尝试创建新的核心 web 应用程序时。
转到工具|NuGet 包管理器|包管理器设置 - 选中 'Allow NuGet to download missing packages' 和 'Automatically check for missing packages during build in VS',然后单击 'Clear All NuGet Cache(s)'。
然后重新构建解决方案 - 它找到并加载了所有必需的包并且 运行 OK。
可能并非适用于所有情况,但简单且值得一试。
我的 Visual studio 2017 .Net Core 应用程序遇到了同样的问题。我关闭了 Visual studio 并重新打开修复了所有问题。
有同样的问题。使用 nuget 包管理器从我的项目中卸载了 Application Insights。我还没有看那个,我只是想要核心和单元测试。问题已解决。
我遇到了同样的问题,我的解决方案是清除 NuGet 缓存。工具 > NuGet 包管理器 > 包管理器设置 > 清除所有 NuGet 缓存
我也遇到了同样的问题。 Dependencies 下没有 SDK 文件夹。因此,没有 Microsoft.NetCore.App 个库 !
要解决此问题,请在 Nuget 管理器 window 中安装任何依赖于 .NetCoreApp 的 nuget(例如,您可以安装 Microsoft.AspNetCore 或 BundlerMinifier.Core 来自 Microsoft Visual Studio离线包源)。
SDK将同步恢复
回来后就可以卸载之前添加的nuget了。 SDK 将保留在原位。
不太确定与 2017 年尝试解析包的顺序。 但是我的情况如下。在我的 VS2015 中,我为 nuget 包配置了本地和第三方源,新安装的 2017 版本也加载了它们。
https://api.nuget.org/v3/index.json 排在第一位。
但是 vs2017 抛出了一个错误,它无法从我的另一个本地存储库恢复 .net 核心库。
除https://api.nuget.org/v3/index.json以外的所有选项我都取消勾选后,它开始正常工作了。
多次 VS2017 的关闭和重新打开为我修复了它。
找到损坏的项目并右键单击,卸载,右键单击,重新加载。对我来说最快的修复。
如果您在使用 CLI 时遇到问题,请尝试 nuget restore
而不是 dotnet restore
,因为这有时会下载 dotnet CLI 似乎遗漏的包。
我也有这个问题,但不是现在,这个步骤解决了我的问题:从菜单栏中选择项目 -> 属性。在项目属性 window 中,在配置属性 -> 常规下,确保公共语言运行时支持设置为公共语言运行时支持 (/clr)
只需打开 NuGet 包管理器,然后打开与之相关的 Visual Studio 设置 - 无需更改任何内容 - 只是环顾四周,当我关闭时,问题不见了。
这似乎是一个间歇性的问题,可以来来去去,没有明显的原因。
尝试在 csproj 文件
中的其他引用上方添加以下行<Reference Include="netstandard" />
对我来说,问题是由于我的项目有一个自定义 IntermediateOutputPath
。由于某种原因,如果 project_name.csproj.nuget.g.targets
不在项目文件夹的 obj
子文件夹中,则会发生错误。
使用默认 IntermediateOutputPath
或在假 obj
文件夹中保留 project_name.csproj.nuget.g.targets
的卷影副本可以解决我的问题。
None 这里的答案对我有用 所以我发布了有用的答案。 我的错误与最初的发布者基本相同,但我也有:
加载 'Microsoft.Extensions.FileProviders.Embedded.2.0.1' 的元数据时出错 十六进制值 0x1C 无效字符
每次我尝试下载不同的 nuget 包或恢复旧包时,我都会看到此错误。我还看到了其他错误,例如:
找不到类型或命名空间系统
对我有用的:
- 打开错误说错误元数据所在的文件路径,对我来说是 C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.fileproviders.embedded.0.1
- 然后,我将该文件夹的内容放入另一个我命名为 "hiding" 的文件夹中。
- 然后又回到nuget包管理器尝试安装包,希望能恢复SDK。 IOt 成功运行,我的所有其他错误也都消失了,全新的项目正常运行!
我的问题发生在 运行 我的 Visual Studio 作为管理员和一个单独的用户 -- 我用我的用户文档中的源文件创建了一个 Git 回购普通账户。当我在该文件夹中创建新解决方案时,出现了上述错误。尝试在不同的地方创建项目,看看错误是否仍然存在。
这个问题似乎是由多种原因引发的。我的是使用 Git Bash 直接从 VSTS 克隆造成的,我的项目目录中有空格。 Git Bash 将路径中的那些空格更改为 %20。它抛弃了我项目中的所有引用。因此,对于尝试了所有其他方法却束手无策的人,请确保 %20 不在路径中。
我在 VS2019 中创建新项目 (.net Core 2.2) 时遇到了同样的问题。以我为例是一个正在创建 problem.I 的 Azure 包,将其卸载后项目开始正常运行。 运行 下面提到的卸载软件包的命令。
Uninstall-Package Microsoft.VisualStudio.Azure.Containers.Tools.Targets -Version 1.7.10
我在 Visual Studio 2019 和 .NET Core SDK 2.2 中遇到了同样的问题。
这些步骤解决了问题:
- 关闭Visual Studio
- 以管理员身份打开Visual Studio
- 打开解决方案
- 右键单击“解决方案”->“还原 NuGet 包”
以上所有答案我都试过了。对我来说,仅 删除并再次添加引用 如下所述:
- 在项目下打开'References'。
- 右键单击 'System' 引用。
- 单击 'Remove'。
- 右键单击 'References'。
- 点击'Add Reference...'。
- 从右侧菜单中选择 'Assemblies'、
- 在搜索字段中键入 'System'。
- 从列表中选择 'System'。
- 单击 'Add' 按钮。
- 重要提示:重新启动 Visual Studio。
'System'参考你可以替换成任何你需要的。
所以,我从 github 克隆了存储库并开始收到此错误。
这是我从另一台机器上传的项目。后来我发现我在我的项目中使用了materialdesign包。
我已经卸载并重新安装了这些软件包,它解决了我的问题。
我遇到了同样的问题。我克隆了一个 github 项目,出现了这个错误。所以我删除了克隆的项目,然后我再次克隆了这个项目,它工作正常。