没有家属的Nuget包

时间:2017-03-13 13:13:17

标签: visual-studio visual-studio-2013 nuget nuget-package nuget-package-restore

我正在为.NET项目使用mspec(machine specification)单元测试框架。

我使用nuget获取所有必需的包。

有一个特定的包,不是代码的一部分。它是mspec的“控制台”应用程序,我用它从命令行从VS外部运行我的单元测试。 (It is located here): 当我使用Nuget安装它时,Nuget不会将它添加到Test项目内的普通“packages.config”文件中。 它将它添加到“.nuget”文件夹中的“packages.config”文件夹中。

但是当我的同事打开项目并进行构建时,他的VS并没有得到那个包。

如何更改,强制VS自动获取包?

1 个答案:

答案 0 :(得分:1)

  

Nuget没有将它添加到普通" packages.config"在Test项目内部的文件。它将它添加到" packages.config"存在于" .nuget"中的文件夹文件夹中。

这是因为您正在使用NuGet 2.7或更高版本,而仍有一个仍由旧包恢复方法配置的解决方案" MSBuild集成恢复" 。这将导致构建失败,并显示一条错误,指出您尚未同意恢复软件包。 Visual Studio将跳过自动包恢复。

  

如何更改,强制VS自动获取包?

要解决此问题,您可以按照以下步骤操作:

  1. 关闭Visual Studio以避免文件潜在的文件锁定和冲突。

  2. 如果使用TFS:a。从解决方案的.nuget文件夹中删除nuget.exe和nuget.targets,然后从解决方案工作区中删除这些文件。一个。使用disable Omitting packages with Team Foundation Version Control中所述的disableSourceControlIntegration设置保留nuget.config。

  3. 如果不使用TFS:a。从解决方案和解决方案工作区中删除.nuget文件夹。

  4. 编辑解决方案中的每个项目文件,删除< RestorePackages>元素,并删除对nuget.targets文件的任何引用。有关更多详细信息,请参阅Migrating to automatic restore