错误NU1105无法找到项目信息 - 项目文件可能无效或缺少恢复所需的目标

时间:2017-12-07 12:47:56

标签: visual-studio nuget visual-studio-2017 csproj nuget-package-restore

突然之间,我在解决方案中的3个项目中遇到以下错误:

Error NU1105 Unable to find project information for 'C:\code\example\src\libs\example.I18n\example.I18n.csproj'. 
The project file may be invalid or missing targets required for restore.

项目中只有一些变化是数据库更改,但过去从未遇到过任何问题。只有我更新到Visual Studio 2017 15.5的其他内容才会导致问题?

我尝试过 - 从源代码管理中删除和重新克隆解决方案。但仍然得到错误。我的同事机器没问题,所以必须是本地的。

其中一个.csproj文件的示例如果有帮助:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net452</TargetFramework>
    <AssemblyName>Example.I18n</AssemblyName>
    <PackageId>Example.I18n</PackageId>
    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="1.1.2" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="1.1.1" />
    <PackageReference Include="MessageFormat" Version="1.0.1" />
  </ItemGroup>

  <ItemGroup Condition=" '$(TargetFramework)' == 'net452' ">
    <Reference Include="System" />
    <Reference Include="Microsoft.CSharp" />
  </ItemGroup>

</Project>

12 个答案:

答案 0 :(得分:52)

升级到Visual Studio 2017版本15.6后,我也得到了同样的结果。

关闭VS并删除.vs文件夹为我修复了它。

答案 1 :(得分:12)

对我来说,磁盘上项目文件的外壳与解决方案文件中的外壳不匹配。

说我有一个LibraryA.csprojLibraryB.csproj的解决方案,其中LibraryB.csproj引用了LibraryA.csproj。在构建LibraryA.csproj时,解决方案文件中NU1105的大小写不正确会导致LibraryB.csproj

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibraryA", "LibraryA\Librarya.csproj", "{24DEBB3B-762A-491D-8B83-6D078C0B30C0}"

升级到Visual Studio 2017的15.5版后,我开始看到这个问题。我没有遇到版本15.4.5的这个问题。

答案 2 :(得分:6)

如果解决方案中未包含引用的项目,也会出现此错误消息。我今天遇到了这个问题,并且找到了解决方法here

答案 3 :(得分:3)

似乎从解决方案文件中删除了一些项目(不知道为什么)。通过撤消这些解决方案文件更改进行了修复

答案 4 :(得分:3)

我遇到了这个问题,我只是按照 VS 中的错误消息建议的操作:恢复解决方案。 所以我 chdir 进入包含解决方案(.sln)文件的目录并刚刚发布

C:> dotnet 恢复

问题已修复。

答案 5 :(得分:2)

重复引用项目时遇到此错误。

<ProjectReference Include="..\ProjectA.csproj" />
<ProjectReference Include="..\ProjectA.csproj" />

删除重复的引用即可解决该错误。

答案 6 :(得分:2)

对我有用的是

  1. 删除有问题的项目
  2. 构建解决方案
  3. 重新添加项目。

答案 7 :(得分:1)

我最近在Linux上使用JetBrains Rider时遇到了错误NU1105。因此,这涉及Mono及其随附的MSBuild版本。

事实证明,这是由于我的解决方案文件位于目录中的,该目录是到另一个目录的符号链接。我相信MSBuild会取消引用链接目录,而是引用源目录。即使它们是完全相同的文件,大小写或其他所有内容,这也会使某些引用的路径完全不同。现在,从原来的位置打开解决方案对我来说非常完美。

答案 8 :(得分:1)

重新加载导致问题的项目,这将解决问题,

如以下链接所述:

https://docs.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu1105

答案 9 :(得分:0)

我有下一个项目结构(.Net Core项目):

../classLib
../../../webProject1
../../../webProject2
../../myWebProjects.sln

webProject1webProject2引用classLib作为项目本身(而不是.dll)。当我在VS 2019中打开解决方案并尝试构建时,出现了相同的error NU1105: Unable to find project information for '../classLib.csproj'.错误。

在构建依赖项目之前,您需要恢复那里的依赖。我所做的只是添加 TargetwebProject1.csproj文件中的下一个webProject2.csproj

<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
    <Exec Command="dotnet restore" />
</Target>

答案 10 :(得分:0)

我收到此错误错误NU1105:无法找到'C:\ folder2 \ project1.csproj'的项目信息。 但是我作为解决方案一部分的project1位于C:\ folder1 \ project1.csproj(它也位于c:\ folder2 \ project1.csproj中,但不是解决方案的一部分,因此令人困惑) 一旦将引用更改为项目的正确位置,便可以使用。

答案 11 :(得分:0)

我只需运行“干净解决方案”选项即可纠正此错误。 在解决方案资源管理器中右键单击解决方案,然后选择干净的解决方案。