我正在为.NET项目使用mspec(machine specification)单元测试框架。
我使用nuget获取所有必需的包。
有一个特定的包,不是代码的一部分。它是mspec的“控制台”应用程序,我用它从命令行从VS外部运行我的单元测试。 (It is located here): 当我使用Nuget安装它时,Nuget不会将它添加到Test项目内的普通“packages.config”文件中。 它将它添加到“.nuget”文件夹中的“packages.config”文件夹中。
但是当我的同事打开项目并进行构建时,他的VS并没有得到那个包。
如何更改,强制VS自动获取包?
答案 0 :(得分:1)
Nuget没有将它添加到普通" packages.config"在Test项目内部的文件。它将它添加到" packages.config"存在于" .nuget"中的文件夹文件夹中。
这是因为您正在使用NuGet 2.7或更高版本,而仍有一个仍由旧包恢复方法配置的解决方案" MSBuild集成恢复" 。这将导致构建失败,并显示一条错误,指出您尚未同意恢复软件包。 Visual Studio将跳过自动包恢复。
如何更改,强制VS自动获取包?
要解决此问题,您可以按照以下步骤操作:
关闭Visual Studio以避免文件潜在的文件锁定和冲突。
如果使用TFS:a。从解决方案的.nuget文件夹中删除nuget.exe和nuget.targets,然后从解决方案工作区中删除这些文件。一个。使用disable Omitting packages with Team Foundation Version Control中所述的disableSourceControlIntegration设置保留nuget.config。
如果不使用TFS:a。从解决方案和解决方案工作区中删除.nuget文件夹。
编辑解决方案中的每个项目文件,删除< RestorePackages>元素,并删除对nuget.targets文件的任何引用。有关更多详细信息,请参阅Migrating to automatic restore。