Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何修复丢失的NuGet包错误? 我在Git下的VisualStudio中有一个C++控制台应用程序,其中有一个子模块静态库叫做“代码>库子模块化Os/Cuth>”。此LibrarySubmoduleSolution使用Windows实现库NuGet包_Git_Visual Studio_Nuget_Nuget Package_Nuget Package Restore - Fatal编程技术网

如何修复丢失的NuGet包错误? 我在Git下的VisualStudio中有一个C++控制台应用程序,其中有一个子模块静态库叫做“代码>库子模块化Os/Cuth>”。此LibrarySubmoduleSolution使用Windows实现库NuGet包

如何修复丢失的NuGet包错误? 我在Git下的VisualStudio中有一个C++控制台应用程序,其中有一个子模块静态库叫做“代码>库子模块化Os/Cuth>”。此LibrarySubmoduleSolution使用Windows实现库NuGet包,git,visual-studio,nuget,nuget-package,nuget-package-restore,Git,Visual Studio,Nuget,Nuget Package,Nuget Package Restore,在我的vcpconsoleApplicationSolution主解决方案中下载Git子模块并在该解决方案中还原NuGet软件包后,我收到以下错误: 严重性代码说明项目文件行 抑制状态错误此项目引用NuGet 此计算机上缺少的程序包。使用NuGet包 还原以下载它们。有关详细信息,请参阅 . 丢失的文件是 ..\packages\Microsoft.Windows.ImplementationLibrary.1.0.200519.2\build\native\Microsoft.Windows.

在我的
vcpconsoleApplicationSolution
主解决方案中下载Git子模块并在该解决方案中还原NuGet软件包后,我收到以下错误:

严重性代码说明项目文件行
抑制状态错误此项目引用NuGet 此计算机上缺少的程序包。使用NuGet包 还原以下载它们。有关详细信息,请参阅 . 丢失的文件是 ..\packages\Microsoft.Windows.ImplementationLibrary.1.0.200519.2\build\native\Microsoft.Windows.ImplementationLibrary.targets。图书馆子模块解决方案
D:\Projects\Tests\VCPPConsoleApplicationSolution\LibrarySubmoduleSolution\LibrarySubmoduleSolution\LibrarySubmoduleSolution.vcxproj 166严重性代码说明项目文件行
抑制状态错误C1083无法打开包含文件: “wil/resource.h”:没有这样的文件或目录
VCPPConsoleApplication解决方案
D:\Projects\Tests\VCPPConsoleApplicationSolution\LibrarySubmoduleSolution\LibrarySubmoduleSolution\SomeClass.h 3.

我在Google和Stackoverflow上搜索答案,甚至在编辑我的
LibrarySubmoduleSolution.vcxproj
文件并将packages文件夹从
。\packages
更改为
$(SolutionDir)\packages

  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
    <Import Project="$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.200519.2\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.200519.2\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
  </ImportGroup>
  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.200519.2\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.200519.2\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
  </Target>

此项目引用此计算机上缺少的NuGet包。使用NuGet Package Restore下载它们。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105. 缺少的文件是{0}。
我仍然无法生成错误:

严重性代码说明项目文件行抑制状态 错误C1083无法打开包含文件:“wil/resource.h”:没有此类文件 或 目录VCPPConsoleApplicationSolution D:\Projects\Tests\VCPPConsoleApplicationSolution\LibrarySubmoduleSolution\LibrarySubmoduleSolution\SomeClass.h3

只有在我在主控制台应用程序项目中安装了Windows实现库NuGet包之后,它才开始生成,没有错误

以下是快速重现错误的主要和子模块解决方案:

如何修复丢失的NuGet包错误

我从github下载了您的项目,遇到了与您描述的相同的问题

主要问题是您的nuget包已损坏,或者您的项目引用nuget包时出现问题

请遵循这些步骤,我通过它们解决了问题

建议

1)或删除
C:\Users\xxx(当前用户名)\.nuget\packages下的所有文件

2)关闭VS实例,删除解决方案文件夹下的
.VS
隐藏文件夹和任何输出文件夹,如
x64
文件夹

3)工具下运行命令
更新软件包-重新安装
-->Nuget软件包管理器-->软件包管理器控制台在项目中重新安装该软件包

然后,错误将消失。我跟着这些,终于明白了

更新1

===========================

很抱歉没有详细观察您的问题。问题出在
xxx.vcxproj
文件中

问题在于:

<Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.200519.2\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.200519.2\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />

 <Import Project="$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.200519.2\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.200519.2\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />

我想知道您为什么要使用
$(SolutionDir)
而不是

在您的问题中,
$(SolutionDir)\packages
的意思是
xxx(SolutionName)\\ packages

$(solutiondir)
表示
xxxx\LibrarySubmoduleSolution\
,它已经包含
\

解决方案

请删除
\
(SolutionDir)
包之间的
\
,并更改为:

$(SolutionDir)包\Microsoft.Windows.ImplementationLibrary.1.0.200519.2\build\native\Microsoft.Windows.ImplementationLibrary.targets在两个xml节点中

==============================

更新2

除了,如果主项目
vcpconsoleapplicationsolution
引用了
LibrarySubmoduleSolution
并使用了它的文件,您还应该在主项目中包含这样的库路径,否则,它将无法在主项目
vcpconsoleapplicationsolution
中找到
资源.h

实际上,当您在主项目
vcpconsoleapplicationsolution
中引用
LibrarySubmoduleSolution
中的
someclass.h
时,
someclass.h
文件将复制到
vcpconsoleapplicationsolution
,在这种环境下,在
LibrarySubmoduleSolution
中安装时,没有这样的库
wil/resource.h
。在主项目中,它没有安装该nuget包(自动包含存在的include路径
resource.h
),因此会发生错误

作为建议

您可以右键单击
vcpconsoleapplicationsolution
properties-->
VC++目录
-->添加
xxxx\vcpconsoleapplicationsolution\packages\Microsoft.Windows.ImplementationLibrary.1.0.200519.2\include
包含目录中


在主项目中安装该nuget软件包,以自动包含库路径。

我认为您的nuget软件包已损坏,您的项目引用nuget软件包时出现问题。首先,关闭vs实例,删除解决方案文件夹下的
.vs
隐藏文件夹,然后重新启动