c# - 签出测试项目后,NuGet 包丢失且无法恢复
问题描述
我最近在 Visual Studio 2019 中的应用程序解决方案中添加了一个用于 Xamarin.Android 的 NUnit 3 单元测试项目。我能够对其进行配置并使其运行(甚至通过一些测试成功!),但只要我检查了该项目进入我们的存储库并将其拉到一台新机器上,我无法让它以我尝试过的任何容量工作。每次我尝试构建时,都会出现错误“此项目引用了此计算机中缺少的 NuGet 包”。这些包肯定在项目目录中可用,并且 NuGet 包管理器似乎认识到它们在那里。
到目前为止,我已经尝试过:
- 通过 NuGet 包管理器卸载和重新安装包
Update-Package -Reinstall
在 PM 控制台中尝试- 在 PM 控制台中尝试
Update-Package -Reinstall -ProjectName myProject
并专门针对测试项目。 Update-Package -Reinstall -Safe
在 PM 控制台中尝试- 使用 .dll 目录手动修改
.csproj
包引用。
在每一个之后,我都遇到了同样的错误。“此项目引用了此计算机中缺少的 NuGet 包。” 我知道事实上他们不是。我在这里想念什么?此外,每次将项目拉到新机器上时,我是否都必须经历这个过程?
更新:
经过反复试验,我能够构建测试项目,将其部署到虚拟设备并按照以下步骤成功运行:
- 在 Visual Studio 中项目的资源管理器视图中,我删除了项目根目录中的“包”文件夹。
我打开包管理器控制台窗口
Update-Package -Reinstall
再次尝试,但这次 PM 控制台窗口提示我 Visual Studio 注意到缺少引用的包,以及是否要还原它们。我单击“恢复”并等待任务完成。此时我能够成功构建,但在尝试部署到虚拟 Android 设备时,出现错误:“LinkAssemblies 任务意外失败。”
- 我安装了最新的可用 Android SDK(API 28,Android Pie),并更改了测试项目的目标框架以匹配。
这让我成功地在 Android 模拟器上运行了我的 NUnit 测试应用程序,但我现在担心的是,如果我将任何更改推送到原点,下一台尝试将项目拉下来的机器将遇到与我相同的问题。我想这将我原来问题的重点更新为:我做错了什么导致自己出现这个问题,我怎样才能防止它转移到需要拉动项目的其他机器上?
解决方案
推荐阅读
- python - 我需要使用beautifulsoup python从没有内部标签数据的类标签中检索数据
- c++ - (重新)在cpp中初始化没有复制构造函数的对象
- laravel - Laravel 5.6:如何使用一个文件夹中包含的所有模型
- scala - 使用 Spark(或 Spark Streaming)更新/更新 Redshift 表中的数据
- python - SQLAlchemy 查询未迭代查询的所有结果
- c# - 如何将复杂对象作为 $http 参数传递并在 API 控制器操作中作为视图模型接收
- android - 如何检测 Android WebRTC 曲目结束
- sql - SQL 命令未正确结束 VBA 中的 SELECT 语句
- verilog - 在verilog中添加两个值任务
- xcode - 从 bash 获取一个 xcode 项目的 bundle id