我正在使用Google Test适配器将单元测试添加到现有的C ++ Visual Studio项目中。
在使用Visual Studio 2019的计算机上,它们都运行良好,但是当我尝试在构建服务器上运行它们时,出现以下错误
错误:该项目引用了此计算机上缺少的NuGet软件包。使用NuGet软件包还原下载它们。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=322105。丢失的文件是.. \ packages \ Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn.1.8.1.3 \ build \ native \ Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn.targets
但是,我们没有使用NuGet进行软件包管理。我尝试安装它,但抱怨缺少文件夹。这不是一个.NET项目,所以我认为这是一个红鲱鱼。
我可以使用Visual Studio安装程序在计算机上安装Google Test适配器,但它不会显示在构建服务器上的VS Build Tools中。
运行msbuild -t:restore
并没有帮助,它只会报告“无所事事”。
我不明白为什么VS Build Tools无法使用Google Test适配器,因为它似乎是构建单元测试所必需的。有谁知道为什么它不起作用?处理此问题的最佳做法是什么?
谢谢!
答案 0 :(得分:0)
问题是您的c ++项目缺少 googletest nuget软件包的内容。因此,解决方案是还原c ++项目中的整个nuget软件包。
更新1
首先,采用一个全新的备份项目,并将其还原到问题开始的时候。
此外,msbuild -t:restore
命令适用于带有PackageReference nuget management format的项目。
由于,您的c ++项目使用了packages.config nuget management format,因此msbuild -t:restore
无法正常工作。 See this official document。相反,您应该使用nuget restore
命令。
此命令适用于您当前的项目,运行此命令将还原nuget程序包,那么您将永远不会遇到问题。
在使用它之前,您应该下载nuget.exe CLI并将其路径配置到系统环境变量 PATH 中,以便 CMD 可以调用{ {1}}。
有关配置nuget
的步骤,您可以参考this link。
步骤
1)删除解决方案文件夹下的nuget.exe
文件夹
2)然后,打开构建工具,运行:
packages
然后,您可以使用命令构建项目。我希望错误会消失。