【发布时间】:2023-03-10 04:05:01
【问题描述】:
我有两个 Visual Studio 2019 解决方案 A 和 B,它们都包含多个项目。解决方案 A 包括解决方案 B 中的一个项目 ProjectB,该项目已作为现有项目添加到 A。此项目使用多个 NuGet 依赖项。显然,NuGet 包不受源代码控制。当用户刚刚从源代码管理中签出解决方案时,会发生以下情况:
- 如果先打开并构建解决方案 B,ProjectB 的 NuGet 依赖项会按预期恢复,并且项目构建成功。
- 如果解决方案 A 在 1. 之后打开并构建,则一切都会成功构建。但是,如果省略第 1 步,ProjectB 将无法在解决方案 A 的范围内构建,因为它引用的依赖项不会在原始路径中重新创建,尽管 NuGet 已在 A 的 @987654322 中安装了所有依赖项@ 文件夹。这会导致出现大量“找不到引用的组件”错误消息,以及相当于this one 的情况。
简单地清理 NuGet 缓存并没有帮助。似乎可以解决问题的唯一方法是致电
Update-Package -reinstall -ProjectName ProjectB
在触发(重新)构建之前,来自解决方案 A 的包管理器控制台。
我想通过在预构建事件中包含 Update-Package 命令来自动执行此操作,但显然那里无法访问包管理器控制台,我想避免安装任何其他软件。
有没有办法在这种情况下正确地恢复所有项目依赖项,以便整个解决方案 A 自动从头开始构建?
【问题讨论】:
标签: c# visual-studio nuget