【问题标题】:Nuget package that has no dependents没有依赖项的 Nuget 包
【发布时间】:2017-08-03 12:35:15
【问题描述】:
我正在为 .NET 项目使用 mspec (machine specification) 单元测试框架。
我使用 nuget 来获取所有必需的包。
有一个特定的包,它不是代码的一部分。它是 mspec 的“控制台”应用程序,我用来从 VS 外部从命令行运行我的单元测试。
(It is located here):
当我使用 Nuget 安装它时,Nuget 不会将它添加到测试项目内的普通“packages.config”文件中。
它将它添加到存在于“.nuget”文件夹中的“packages.config”文件夹中。
但是当我的同事打开项目并构建时,他的 VS 并没有得到那个包。
如何更改,强制 VS 自动获取包?
【问题讨论】:
标签:
visual-studio
visual-studio-2013
nuget
nuget-package
nuget-package-restore
【解决方案1】:
Nuget 不会将其添加到测试项目内的普通“packages.config”文件中。它将它添加到存在于“.nuget”文件夹中的“packages.config”文件夹中。
那是因为您使用的是 NuGet 2.7 或更高版本,并且有一个仍然由旧包还原方法“MSBuild-integrated restore”配置的解决方案。这将导致构建失败,并显示您未同意恢复包的错误。 Visual Studio 将跳过自动包还原。
如何更改,强制 VS 自动获取包?
要解决此问题,您可以按照以下步骤操作:
关闭 Visual Studio 以避免文件潜在的文件锁定和冲突。
如果使用 TFS:从解决方案的 .nuget 文件夹中删除 nuget.exe 和 nuget.targets,并从解决方案工作区中删除这些文件。一种。按照Omitting packages with Team Foundation Version Control 中的说明,使用 disableSourceControlIntegration 设置保留 nuget.config。
如果不使用 TFS:从解决方案和解决方案工作区中删除 .nuget 文件夹。
编辑解决方案中的每个项目文件,删除 元素,并删除对 nuget.targets 文件的所有引用。更多详情可以参考Migrating to automatic restore。