错误 NU1105 无法找到项目信息 - 项目文件可能无效或缺少恢复所需的目标
Error NU1105 Unable to find project information - The project file may be invalid or missing targets required for 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>
对我来说,磁盘上的项目文件的大小写与解决方案文件中的大小写不匹配。
假设我有一个 LibraryA.csproj
和 LibraryB.csproj
的解决方案,其中 LibraryB.csproj
引用了 LibraryA.csproj
。解决方案文件中 LibraryA.csproj
的大小写不正确会在构建 LibraryB.csproj
时导致 NU1105
:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibraryA", "LibraryA\Librarya.csproj", "{24DEBB3B-762A-491D-8B83-6D078C0B30C0}"
我在升级到 Visual Studio 2017 的 15.5 版本后开始看到这个问题。我在 15.4.5 版本中没有遇到这个问题。
升级到 Visual Studio 2017 的 15.6 版本后,我也得到了同样的结果。
关闭 VS 并删除 .vs 文件夹为我修复了它。
似乎从解决方案文件中删除了一些项目(不知道为什么)。通过撤消这些解决方案文件更改修复
如果引用的项目未包含在解决方案中,也会出现此错误消息。我今天遇到了这个问题,我找到了修复 here.
我在重复引用项目时遇到此错误。
<ProjectReference Include="..\ProjectA.csproj" />
<ProjectReference Include="..\ProjectA.csproj" />
删除重复引用解决了错误。
对我有用的是
- 删除违规项目
- 构建解决方案
- 重新添加项目。
我有下一个项目结构(.Net Core 项目):
../classLib
../../../webProject1
../../../webProject2
../../myWebProjects.sln
webProject1
和 webProject2
引用 classLib
作为项目本身(而不是 .dll
)。当我在 VS 2019 中打开我的解决方案并尝试构建时,我遇到了相同的 error NU1105: Unable to find project information for '../classLib.csproj'.
错误。
在构建依赖的项目之前,您需要恢复那里的依赖。我做了什么,只需添加
接下来 Target
到我的 webProject1.csproj
和 webProject2.csproj
文件。
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
<Exec Command="dotnet restore" />
</Target>
我最近在 Linux 上使用 JetBrains Rider 时遇到错误 NU1105。所以这涉及到Mono和它自带的MSBuild版本。
事实证明,这是由于我的解决方案文件位于一个目录中,该目录是另一个目录的符号 link。我相信 MSBuild 正在取消引用 linked 目录,而是引用源目录。这使得一些引用路径完全不同,即使它们是完全相同的文件、大小写和其他所有内容。从原始位置打开解决方案现在对我来说非常有效。
重新加载导致问题的项目,这将解决问题,
如下所述link:
https://docs.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu1105
我收到此错误错误 NU1105:无法找到 'C:\folder2\project1.csproj' 的项目信息。
但是我作为解决方案的一部分的 project1 位于 C:\folder1\project1.csproj(它也在 c:\folder2\project1.csproj 中,但不是解决方案的一部分,所以它很混乱)
一旦我将引用更改为它工作的项目的正确位置。
我通过 运行 干净的解决方案选项更正了这个错误。
右键单击解决方案资源管理器中的解决方案并选择干净的解决方案。
我遇到了这个问题,我只是按照 VS 中的错误消息建议进行操作:
恢复解决方案。
所以我打开命令行或包管理器控制台,chdir
进入包含解决方案 (.sln
) 文件的目录并刚刚发布
C:> dotnet restore .\mySolution.sln
问题已解决。
这太疯狂了,我尝试了所有这些:
更新VS。手动删除所有 bin 文件夹,运行 dotnet restore,clean rebuild 无效
解决方案:最后我卸载所有项目并开始将它们重新加载到解决方案中,按照它们显示依赖项错误的顺序一个一个地加载。然后最后一个只是级联修复一切。不知道哪里出了问题
在花了 3 个小时尝试了很多解决方案后,对我有用的是我不得不撤消我的根解决方案 sln 文件...一些项目引用被删除了..不知道如何。
当我的文件名称超过 OS 的最大路径限制时,我就会遇到这种情况。检查你的名字 ;)
就我而言,我做到了并且对我有用
- 转到Tools/CommandLine/Developer 命令提示符或开发人员 Powershell
- 键入此命令并输入“dotnet restore”。
- 构建您的解决方案
就这些了
打开 powershell 和 运行 恢复命令解决了我的问题。
dotnet restore Sample.sln
突然间,我在解决方案中的 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>
对我来说,磁盘上的项目文件的大小写与解决方案文件中的大小写不匹配。
假设我有一个 LibraryA.csproj
和 LibraryB.csproj
的解决方案,其中 LibraryB.csproj
引用了 LibraryA.csproj
。解决方案文件中 LibraryA.csproj
的大小写不正确会在构建 LibraryB.csproj
时导致 NU1105
:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibraryA", "LibraryA\Librarya.csproj", "{24DEBB3B-762A-491D-8B83-6D078C0B30C0}"
我在升级到 Visual Studio 2017 的 15.5 版本后开始看到这个问题。我在 15.4.5 版本中没有遇到这个问题。
升级到 Visual Studio 2017 的 15.6 版本后,我也得到了同样的结果。
关闭 VS 并删除 .vs 文件夹为我修复了它。
似乎从解决方案文件中删除了一些项目(不知道为什么)。通过撤消这些解决方案文件更改修复
如果引用的项目未包含在解决方案中,也会出现此错误消息。我今天遇到了这个问题,我找到了修复 here.
我在重复引用项目时遇到此错误。
<ProjectReference Include="..\ProjectA.csproj" />
<ProjectReference Include="..\ProjectA.csproj" />
删除重复引用解决了错误。
对我有用的是
- 删除违规项目
- 构建解决方案
- 重新添加项目。
我有下一个项目结构(.Net Core 项目):
../classLib
../../../webProject1
../../../webProject2
../../myWebProjects.sln
webProject1
和 webProject2
引用 classLib
作为项目本身(而不是 .dll
)。当我在 VS 2019 中打开我的解决方案并尝试构建时,我遇到了相同的 error NU1105: Unable to find project information for '../classLib.csproj'.
错误。
在构建依赖的项目之前,您需要恢复那里的依赖。我做了什么,只需添加
接下来 Target
到我的 webProject1.csproj
和 webProject2.csproj
文件。
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
<Exec Command="dotnet restore" />
</Target>
我最近在 Linux 上使用 JetBrains Rider 时遇到错误 NU1105。所以这涉及到Mono和它自带的MSBuild版本。
事实证明,这是由于我的解决方案文件位于一个目录中,该目录是另一个目录的符号 link。我相信 MSBuild 正在取消引用 linked 目录,而是引用源目录。这使得一些引用路径完全不同,即使它们是完全相同的文件、大小写和其他所有内容。从原始位置打开解决方案现在对我来说非常有效。
重新加载导致问题的项目,这将解决问题,
如下所述link:
https://docs.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu1105
我收到此错误错误 NU1105:无法找到 'C:\folder2\project1.csproj' 的项目信息。 但是我作为解决方案的一部分的 project1 位于 C:\folder1\project1.csproj(它也在 c:\folder2\project1.csproj 中,但不是解决方案的一部分,所以它很混乱) 一旦我将引用更改为它工作的项目的正确位置。
我通过 运行 干净的解决方案选项更正了这个错误。 右键单击解决方案资源管理器中的解决方案并选择干净的解决方案。
我遇到了这个问题,我只是按照 VS 中的错误消息建议进行操作:
恢复解决方案。
所以我打开命令行或包管理器控制台,chdir
进入包含解决方案 (.sln
) 文件的目录并刚刚发布
C:> dotnet restore .\mySolution.sln
问题已解决。
这太疯狂了,我尝试了所有这些: 更新VS。手动删除所有 bin 文件夹,运行 dotnet restore,clean rebuild 无效
解决方案:最后我卸载所有项目并开始将它们重新加载到解决方案中,按照它们显示依赖项错误的顺序一个一个地加载。然后最后一个只是级联修复一切。不知道哪里出了问题
在花了 3 个小时尝试了很多解决方案后,对我有用的是我不得不撤消我的根解决方案 sln 文件...一些项目引用被删除了..不知道如何。
当我的文件名称超过 OS 的最大路径限制时,我就会遇到这种情况。检查你的名字 ;)
就我而言,我做到了并且对我有用
- 转到Tools/CommandLine/Developer 命令提示符或开发人员 Powershell
- 键入此命令并输入“dotnet restore”。
- 构建您的解决方案
就这些了
打开 powershell 和 运行 恢复命令解决了我的问题。
dotnet restore Sample.sln