Visual Studio 2017 error: Cannot find project info for "" This can indicate a missing project reference
Visual Studio 2017 error: Cannot find project info for "" This can indicate a missing project reference
刚刚从 MSDN 网站安装了 Visual Studio 2017(完整版)。
创建了一个新的 Asp.Net 核心 Web 应用程序(.Net Framework),并选择了 .net Framework 4.6。项目名称="WebApplicationWithTemplate"
再次添加了 Class 库 (.Net Standard) 类型的另一个项目,并选择了 .net framework 4.6。项目名称="DataAccessRegular"
接下来尝试将 class 库项目的引用添加到 Asp.Net 核心 Web 应用程序,但出现此错误:
找不到 'E:\Development\VS2017Solution\DataAccessRegular\DataAccessRegular.csproj' 的项目信息。 这可能表示缺少项目引用。 WebApplicationWithTemplate C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets 92
还创建了 Class 库(.net 核心)项目 [上面的屏幕截图中未显示] 并将其引用添加到 asp.net 核心项目,但仍然出现相同的错误。
还阅读了 This link on github,但遗憾的是没有找到帮助。
问这个问题是因为我想将模型、服务和数据访问层保留在一个单独的项目中。
要解决此问题,请在 class 库的 csproj
中,将 <TargetFramework>netstandard1.4</TargetFramework>
更改为 <TargetFramework>net46</TargetFramework>
或 <TargetFrameworks>netstandard1.4;net46</TargetFrameworks>
请注意,如果您指定了多个目标,元素应更改为复数 TargetFrameworks ,而不是 TargetFramework ()
您看到的内容来自 Class Library (.NET Standard)
模板,实际上是针对 .NET Standard(具体为 netstandard1.4
),而不是目标框架下拉列表中的选择。使用 Class Library (.NET Framework)
模板也可以。
更新:
其他选项:
- 将 Web 应用程序更改为目标
.NET Framework 4.6.1
(这将允许引用目标 netstandard1.4
的内容
- 将 class 库更改为目标
netstandard1.3
(这将允许从目标 .NET Framework 4.6
的项目中引用它)
我们还在跟踪改进这些问题通过 https://github.com/dotnet/sdk/issues/829 and https://github.com/dotnet/roslyn-project-system/issues/1470
浮出水面的方式
存储在.csproj 中的引用项目路径区分大小写!所以,请注意,并检查您是否有正确大小写的正确路径!为此:
- 右键单击项目
- select 编辑
- 勾选
<ProjectReference Include=<Path>
注意(KDuenke):这在 Windows 机器上也可能是一个问题,特别是如果您使用 Docker 作为 Windows。
我通过纠正我的错误解决了这个问题,即参考被添加为项目参考和浏览参考。
程序集因此被引用两次 - 直接作为程序集 - 间接作为包含项目的输出。
当我删除浏览引用并只保留项目引用时,它被清除了。
我在从解决方案中删除了一个 nuget 包(我自己构建的)然后将其替换为对构建该包的项目的项目引用后遇到了这个问题。问题的解决方案...?关闭 VS 并重新打开它。
我遇到了同样的问题,从程序集中删除引用 class 并解决了这个问题,
重命名项目和文件夹(使用 .csproj
文件)时也遇到了这个问题。我在两个项目上做了一个 dotnet restore
给了我这个错误(它在重命名之前和我添加了对 "new" 重命名项目的引用之后引用了该项目)然后成功构建了解决方案。
如果您错误地引用了dll以及引用了项目
您将看到解决方案资源管理器的 References/Assemblies 节点也包含 .dll 您可以在引用的项目下查看并查看相同的命名项目。
如果您需要引用项目,则从程序集中删除包含的 .dll;如果您只需要引用包含的 .dll,则删除项目。
就我而言,我只是从 Reference/Assemblies 列表中删除了程序集。
如果您已将 dll 的引用添加到程序集并添加为项目引用以及依赖项,那么您将面临这个问题(许多可能的原因之一)
您只需要从依赖项的程序集部分删除引用
检查下面:
Example
就我而言,在项目 A 中有一个项目 B 项目引用,其中包含一个从项目 C 构建的 NuGet 包,它也是项目 A 中的项目引用。解决方案是将 NuGet 引用更改为项目参考。
重命名项目后,我刚刚在这个问题上花了一天时间 (files/folders/...)
None 的给定答案有帮助。 VS 重新启动,完整 clean/rebuilds,...我什至在 any 解决方案文件(均使用 VS 和 Powershell)中寻找任何提及的违规参考,但没有弹出任何内容错误仍然存在。
最后,我通过 VPN 连接到我们的 Nuget 服务器所在的办公室(我在家工作)解决了这个问题。奇怪的是,没有下载包(因为它们都已经离线可用)但是问题已解决。
检查与您的 Nuget 服务器的连接是否存在问题。我不知道为什么,但它为我修复了它。
我从导致错误的项目的 .csproj 文件中删除了这个标签...
<ItemGroup>
<Reference Include="MyIntegration">
<HintPath>..\MyIntegration\bin\Debug\netstandard2.0\MyIntegration.dll</HintPath>
</Reference>
</ItemGroup>
注意:我select编辑了此 .dll 的 'Browse' 引用,它将之前的代码添加到我的 .csproj 中。已删除,错误消失了。
仅供参考,每次 select 从 Dependencies
引用新项目时,都会向您的 .csproj 添加 <ProjectReference>
行
刚刚从 MSDN 网站安装了 Visual Studio 2017(完整版)。 创建了一个新的 Asp.Net 核心 Web 应用程序(.Net Framework),并选择了 .net Framework 4.6。项目名称="WebApplicationWithTemplate"
再次添加了 Class 库 (.Net Standard) 类型的另一个项目,并选择了 .net framework 4.6。项目名称="DataAccessRegular"
接下来尝试将 class 库项目的引用添加到 Asp.Net 核心 Web 应用程序,但出现此错误:
找不到 'E:\Development\VS2017Solution\DataAccessRegular\DataAccessRegular.csproj' 的项目信息。 这可能表示缺少项目引用。 WebApplicationWithTemplate C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets 92
还创建了 Class 库(.net 核心)项目 [上面的屏幕截图中未显示] 并将其引用添加到 asp.net 核心项目,但仍然出现相同的错误。
还阅读了 This link on github,但遗憾的是没有找到帮助。
问这个问题是因为我想将模型、服务和数据访问层保留在一个单独的项目中。
要解决此问题,请在 class 库的 csproj
中,将 <TargetFramework>netstandard1.4</TargetFramework>
更改为 <TargetFramework>net46</TargetFramework>
或 <TargetFrameworks>netstandard1.4;net46</TargetFrameworks>
请注意,如果您指定了多个目标,元素应更改为复数 TargetFrameworks ,而不是 TargetFramework (
您看到的内容来自 Class Library (.NET Standard)
模板,实际上是针对 .NET Standard(具体为 netstandard1.4
),而不是目标框架下拉列表中的选择。使用 Class Library (.NET Framework)
模板也可以。
更新:
其他选项:
- 将 Web 应用程序更改为目标
.NET Framework 4.6.1
(这将允许引用目标netstandard1.4
的内容 - 将 class 库更改为目标
netstandard1.3
(这将允许从目标.NET Framework 4.6
的项目中引用它)
我们还在跟踪改进这些问题通过 https://github.com/dotnet/sdk/issues/829 and https://github.com/dotnet/roslyn-project-system/issues/1470
浮出水面的方式存储在.csproj 中的引用项目路径区分大小写!所以,请注意,并检查您是否有正确大小写的正确路径!为此:
- 右键单击项目
- select 编辑
- 勾选
<ProjectReference Include=<Path>
注意(KDuenke):这在 Windows 机器上也可能是一个问题,特别是如果您使用 Docker 作为 Windows。
我通过纠正我的错误解决了这个问题,即参考被添加为项目参考和浏览参考。
程序集因此被引用两次 - 直接作为程序集 - 间接作为包含项目的输出。
当我删除浏览引用并只保留项目引用时,它被清除了。
我在从解决方案中删除了一个 nuget 包(我自己构建的)然后将其替换为对构建该包的项目的项目引用后遇到了这个问题。问题的解决方案...?关闭 VS 并重新打开它。
我遇到了同样的问题,从程序集中删除引用 class 并解决了这个问题,
重命名项目和文件夹(使用 .csproj
文件)时也遇到了这个问题。我在两个项目上做了一个 dotnet restore
给了我这个错误(它在重命名之前和我添加了对 "new" 重命名项目的引用之后引用了该项目)然后成功构建了解决方案。
如果您错误地引用了dll以及引用了项目 您将看到解决方案资源管理器的 References/Assemblies 节点也包含 .dll 您可以在引用的项目下查看并查看相同的命名项目。 如果您需要引用项目,则从程序集中删除包含的 .dll;如果您只需要引用包含的 .dll,则删除项目。
就我而言,我只是从 Reference/Assemblies 列表中删除了程序集。
如果您已将 dll 的引用添加到程序集并添加为项目引用以及依赖项,那么您将面临这个问题(许多可能的原因之一)
您只需要从依赖项的程序集部分删除引用
检查下面: Example
就我而言,在项目 A 中有一个项目 B 项目引用,其中包含一个从项目 C 构建的 NuGet 包,它也是项目 A 中的项目引用。解决方案是将 NuGet 引用更改为项目参考。
重命名项目后,我刚刚在这个问题上花了一天时间 (files/folders/...)
None 的给定答案有帮助。 VS 重新启动,完整 clean/rebuilds,...我什至在 any 解决方案文件(均使用 VS 和 Powershell)中寻找任何提及的违规参考,但没有弹出任何内容错误仍然存在。
最后,我通过 VPN 连接到我们的 Nuget 服务器所在的办公室(我在家工作)解决了这个问题。奇怪的是,没有下载包(因为它们都已经离线可用)但是问题已解决。
检查与您的 Nuget 服务器的连接是否存在问题。我不知道为什么,但它为我修复了它。
我从导致错误的项目的 .csproj 文件中删除了这个标签...
<ItemGroup>
<Reference Include="MyIntegration">
<HintPath>..\MyIntegration\bin\Debug\netstandard2.0\MyIntegration.dll</HintPath>
</Reference>
</ItemGroup>
注意:我select编辑了此 .dll 的 'Browse' 引用,它将之前的代码添加到我的 .csproj 中。已删除,错误消失了。
仅供参考,每次 select 从 Dependencies
引用新项目时,都会向您的 .csproj 添加<ProjectReference>
行