.net 为什么Nuget在构建项目时不自动添加缺少的dll引用

.net 为什么Nuget在构建项目时不自动添加缺少的dll引用,.net,visual-studio-2015,nuget,nuget-package-restore,.net,Visual Studio 2015,Nuget,Nuget Package Restore,我是Nuget的新手,想知道如何将它融入到我的工作项目中。我打包了几个dll并创建了一个本地nuget提要。我把它添加到我的VisualStudio中,我看到了其中的所有包。我确保单击“在Visual Studio中生成期间自动检查缺少的包”和“允许NuGet下载缺少的包”选项,但在生成项目时,它不会自动添加缺少的dll引用。当我右键单击我的解决方案时,我也尝试了“restore nuget package”选项,但它只是告诉我,即使我看不到,所有内容都已恢复。另外,我读到它应该创建一个.nug

我是Nuget的新手,想知道如何将它融入到我的工作项目中。我打包了几个dll并创建了一个本地nuget提要。我把它添加到我的VisualStudio中,我看到了其中的所有包。我确保单击“在Visual Studio中生成期间自动检查缺少的包”和“允许NuGet下载缺少的包”选项,但在生成项目时,它不会自动添加缺少的dll引用。当我右键单击我的解决方案时,我也尝试了“restore nuget package”选项,但它只是告诉我,即使我看不到,所有内容都已恢复。另外,我读到它应该创建一个.nuget、nuget.target和一个nuget.config,但在我的解决方案中没有看到它。有人能告诉我我做错了什么或错过了什么吗?以及我如何解决这些问题

我正在Visual Studio 2015中尝试这样做,但稍后将在以前的版本中尝试

有人能告诉我我做错了什么或错过了什么吗?以及我如何解决这些问题

首先,正如Jon所评论的,您应该确保已将包添加到项目中。您可以通过
软件包管理器控制台
管理NuGet软件包UI
执行此操作

其次,如果在将包安装到项目中后仍存在此问题,则应使用包管理器控制台中的NuGet命令行:

Update-Package -reinstall
强制将包引用重新安装到项目中。因为NuGet Restore只还原packages目录(\packages文件夹)中的文件,而不还原项目中的文件或修改项目

我读到它应该创建一个.nuget、nuget.target和一个nuget.config,但在我的解决方案中没有看到它

此还原方法适用于使用NuGet 2.6及更早版本的MSBuild集成还原,使用NuGet 2.7及更高版本的,Visual Studio默认情况下会在生成开始时自动还原缺少的包。可以通过清除工具>选项>[NuGet]包管理器>常规>在Visual Studio中生成期间自动检查丢失的包来更改此行为


由于您使用的是Visual Studio 2015,NuGet的默认版本为3.x,该还原方法不适用于您的问题,只需确保单击“在Visual Studio中生成期间自动检查缺少的包”和“允许NuGet下载缺少的包”选项。

您是否已将实际包添加到项目中?仅仅添加提要是不够的。。。它不像是要将提要中的所有内容都添加到每个项目中。因此,我必须先手动将我需要的每个包添加到项目中,然后下次运行该包时(比如说tfs),它会自动调用提取缺少的dll?我认为只要dll在被引用之前,它就会在nuget提要中自动找到它(如果它丢失)。@MikeT,如果您从TFS分支,nuget会自动恢复包,引用可能会由于某些原因而中断,您可以使用简单的命令重新安装它们。如果上面的答案解决了您的问题,您可以将其标记为“答案”,这样就可以帮助其他社区成员解决同样的问题。如果没有,请让我们了解这个问题的最新情况。如果你有更多的问题,你可以提交另一个帖子,我们也会跟进。