Visual Studio 2017错误:找不到“”的项目信息这可能表示缺少项目引用

时间:2017-03-07 20:23:29

标签: asp.net-core visual-studio-2017

刚从MSDN网站安装Visual Studio 2017(完整版)。 创建了一个新的 Asp.Net核心Web应用程序(.Net Framework),并选择了.net framework 4.6。项目名称=“WebApplicationWithTemplate”

添加了另一个类型为类库(.Net Standard)的项目,并选择了.net framework 4.6。项目名称=“DataAccessRegular”

接下来尝试将类库项目的引用添加到Asp.Net Core Web应用程序中,我收到此错误:

enter image description here

无法找到'E:\ Development \ VS2017Solution \ DataAccessRegular \ DataAccessRegular.csproj'的项目信息。 这可能表示缺少项目引用。 WebApplicationWithTemplate C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.NET.Sdk .targets 92

还创建了类库(.net核心)项目[未在上面的屏幕截图中显示]并添加了对asp.net核心项目的引用,但仍然得到相同的错误。

另请阅读This link on github,但遗憾的是没有发现它有用。

要问这个是因为我想将模型,服务和数据访问层保留在一个单独的项目中。

11 个答案:

答案 0 :(得分:17)

我从一个解决方案中移除了一个nuget包(我自己构建了)之后遇到了这个问题,然后用项目引用代替它来构建包的项目。这个问题的解决方案......?关闭VS并重新打开它。

答案 1 :(得分:13)

我通过纠正错误来解决这个问题,即将引用添加为项目引用和浏览引用。

因此,程序集被引用两次 - 直接作为程序集 - 并间接作为包含项目的输出。

当我删除了浏览引用并且仅保留了项目引用时,它就被清除了。

答案 2 :(得分:10)

要解决此问题,请在select a.end+1 as RangeFrom, b.start-1 as RangeTo from (select * from test union all select 0, 0, 0) a left join (select * from test order by start) b on b.start = (select min(start) from test x where x.start > a.end) where b.start - a.end - 1 >= 3 order by 1 limit 1; 类库中,将csproj更改为<TargetFramework>netstandard1.4</TargetFramework><TargetFramework>net46</TargetFramework>

注意,如果指定多个目标,则元素应更改为复数TargetFramework s ,而不是TargetFramework(Build errors when multi-targeting in csproj file

您所看到的内容来自<TargetFrameworks>netstandard1.4;net46</TargetFrameworks>模板,该模板实际上是针对.NET Standard(Class Library (.NET Standard)专门针对),而不是目标框架下拉列表中的选择。相反,使用netstandard1.4模板也可以。

<强>更新

其他选项:

  • 将网络应用程序更改为目标Class Library (.NET Framework)(这样可以引用定位.NET Framework 4.6.1的内容
  • 将类库更改为目标netstandard1.4(这样可以从定位netstandard1.3的项目中引用它)

我们还会通过https://github.com/dotnet/sdk/issues/829https://github.com/dotnet/roslyn-project-system/issues/1470来跟踪改进这些问题的表现方式

答案 3 :(得分:4)

存储在.csproj中的引用项目路径区分大小写!所以,请注意,并检查您是否有正确的路径!要做到这一点:

  1. 右键单击项目
  2. 选择修改
  3. 检查<ProjectReference Include=<Path>
  4. 注意(KDuenke):这也可能是Windows机器上的问题,特别是如果您使用的是Docker for Windows。

答案 4 :(得分:2)

如果您错误地引用了dll以及引用了项目 您将看到解决方案资源管理器的“引用/组件”节点也包含.dll,您可以在引用的项目下查找并看到相同的命名项目。 如果需要引用项目,则从程序集中删除包含.dll;如果仅需要引用包含.dll,则删除项目。

就我而言,我只是从“参考/部件”列表中删除了该部件。

答案 5 :(得分:1)

我从导致错误的项目的.csproj文件中删除了此标记...

<ItemGroup>
    <Reference Include="MyIntegration">
      <HintPath>..\MyIntegration\bin\Debug\netstandard2.0\MyIntegration.dll</HintPath>
    </Reference>
  </ItemGroup>

注意:我选择了此.dll的“浏览”参考,这将以前的代码添加到了.csproj中。已删除,错误消失了。

仅供参考,每次您从依赖项中选择新的项目引用时,{。{1}}行都会添加到.csproj中。

答案 6 :(得分:0)

我遇到同样的问题并从程序集中删除引用类并解决了这个问题,

答案 7 :(得分:0)

重命名项目和文件夹(带有.csproj文件)时,也会出现此问题。我在这两个项目上做了一个dotnet restore,给了我这个错误(重命名之前以及在添加对“新”重命名项目的引用之后引用了该项目),然后成功构建了解决方案。

答案 8 :(得分:0)

如果您已将dll的引用添加到程序集并作为依赖项添加为项目引用,那么您将面临此问题(许多可能的原因之一)

您只需要从依赖项的汇编部分删除引用

检查以下内容: Example

答案 9 :(得分:0)

在我的情况下,在项目A中,有一个项目B项目参考,其中包括从项目C构建的NuGet包,这也是项目A中的项目参考。解决方案是将NuGet参考更改为项目参考。

答案 10 :(得分:0)

重命名项目(文件/文件夹/ ...)后,我在这个问题上花了一天的时间

给出的答案均无济于事。 VS重新启动,完全清理/重建,...我什至在 any 解决方案文件(都使用VS和Powershell)中寻找任何有问题的参考,但没有弹出,但错误仍然存​​在。 / p>

最后,我通过VPN连接到我的Nuget服务器所在的办公室(我在家工作)解决了该问题。奇怪的是,没有下载任何软件包(因为它们都已经脱机可用),但是问题已解决

检查与您的Nuget服务器的连接是否存在问题。我不知道为什么,但是它为我解决了这个问题。