我最近创建了一个基于Google Test的C++ Visual Studio 2017单元测试项目(vcxproj)。我使用了“文件/新建/项目/已安装/Visual C++/测试/Google Test”进行创建。
这将创建一个package.config文件:
它还在我的解决方案中创建了一个名为
这将创建一个package.config文件:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn" version="1.8.0" targetFramework="native" />
</packages>
它还在我的解决方案中创建了一个名为
packages
的目录,并将googletest
包放置其中。该目录包含二进制库(没有源代码),因此我没有将packages
目录添加到版本控制中。我的假设是,如果缺少该包(使用nuget或其他方式),Visual Studio会重新下载该包。但是,当我克隆存储库并开始新建时,单元测试项目无法打开(“加载失败”),因为其导入语句中提到的packages
目录不存在:<Import Project="..\packages\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn.1.8.0\build\native\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn.targets" />
我看了这篇文章,似乎包含了一些提示:https://learn.microsoft.com/en-gb/nuget/consume-packages/package-restore
他们建议启用“在构建期间自动检查缺失的包”。我的复选框已经被选中了,所以我猜想在加载项目之前无法构建。
在这里应该怎么做才是正确的?
我应该检查 packages
还是有其他方法可以自动获取包(就像 VS 创建我的项目时所做的那样)?
更新:我能够通过命令行手动恢复 nuget restore -SolutionDir xyz
来恢复 packages 目录,但是否有一种方法在打开项目之前自动触发此操作?