首页 文章

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

提问于
浏览
14

刚从MSDN网站安装Visual Studio 2017(完整版) . 创建了一个新的 Asp.Net Core Web Application (.Net Framework) ,并选择了.net框架4.6 . 项目名称= "WebApplicationWithTemplate"

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

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

enter image description here

Cannot find project info for 'E:\Development\VS2017Solution\DataAccessRegular\DataAccessRegular.csproj' . This can indicate a missing project reference. 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,但遗憾的是没有发现它有用 .

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

7 回答

  • 14

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

  • 9

    存储在.csproj中的引用项目路径区分大小写!因此,请注意,并检查您是否在正确的情况下拥有正确的路径!去做这个:

    • 右键单击该项目

    • 选择编辑

    • 检查 <ProjectReference Include=<Path>

    注意(KDuenke):这也可能是Windows机器上的问题,特别是如果您使用的是Docker for Windows .

  • 3

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

  • 9

    我有同样的问题,从程序集中删除引用类并解决此问题,

  • 0

    要解决此问题,请在 csproj 中为类库更改 <TargetFramework>netstandard1.4</TargetFramework> 更改为 <TargetFramework>net46</TargetFramework><TargetFrameworks>netstandard1.4;net46</TargetFrameworks>

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

    你所看到的是来自 Class Library (.NET Standard) 模板,实际上是针对.NET Standard(特别是 netstandard1.4 ),而不是目标框架下拉列表中的选择 . 使用 Class Library (.NET Framework) 模板也可以 .

    Update:

    其他选项:

    • 将Web应用程序更改为目标 .NET Framework 4.6.1 (这将允许引用目标 netstandard1.4 的内容

    • 将类库更改为目标 netstandard1.3 (这将允许从目标 .NET Framework 4.6 的项目中引用它)

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

  • 0

    如果您错误地引用了dll以及引用了项目,您将看到解决方案资源管理器的References / Assemblies节点包含.dll,您可以查看引用的项目并查看相同的命名项目 . 如果需要引用项目,则从程序集中删除contains .dll;如果只需要包含.dll的引用,则删除项目 .

    在我的例子中,我刚从Reference / Assemblies列表中删除了程序集 .

  • 0

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

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

    当我删除浏览引用并且仅保留项目引用时它被清除 .

相关问题