【问题标题】:Unable to resolve nuget packages issue while pulling the project from TFS从 TFS 拉项目时无法解决 nuget 包问题
【发布时间】:2017-07-13 18:32:11
【问题描述】:

所以我的同事一直在他的本地进行 .NET C# 单元测试项目,并将所有内容都签入公司的 TFS 服务器。他是唯一一个为此工作的人。当我被要求切换到他的项目时,我使用 Visual Studio 将他的工作从 TFS 拉到我的本地(有点创建副本)。所以我继续 Team => Manage Connections => Connected to the TFS => 找到了所需的项目文件夹。在 TFS 中右键单击此文件夹并选择 Get Latest Version 将整个文件夹复制到我在 Visual Studio 中明确提供的本地。完成此操作后,我选择 File => Open => Project/Solution => found .sln 文件在我的本地文件夹上刚刚拉出的项目并选择了它。似乎我已经准备好所有代码,并且导航到解决方案的 Managing Nuget Packages 会显示与我的同事在他的本地 Visual Studio 上的所有相同的包。当我尝试构建新打开的解决方案时,问题出现了,我看到很多错误,这些错误都与项目无法引用正确的程序集或缺少 dll 相关。据我了解,该项目正在尝试查找 nuget 包,但看不到它。我看到的软件包版本与我的同事相同。以下是我已经尝试过但没有帮助的方法

  1. 在 Visual Studio 解决方案资源管理器中右键单击解决方案并选择 Restore Nuget Packages
  2. 试图从我的同事 Visual Studio 复制 packages.config 文件
  3. 尝试在包管理器控制台中运行 nuget restore MyProject.sln
  4. 试图删除我本地解决方案中的文件夹 package 并从我的同事本地复制/粘贴它
  5. 卸载所有包并在 Nuget 包窗口中重新安装它们。

如果您能够解决此类问题,请分享您的经验。谢谢!

【问题讨论】:

    标签: visual-studio-2015 tfs nuget-package


    【解决方案1】:

    从 TFS 拉取项目时无法解决 nuget 包问题

    您可以尝试在包管理器控制台中使用 NuGet 命令行:

    Update-Package -reinstall
    

    强制将包引用重新安装到项目中。

    你尝试过的方法1~4是还原包。 NuGet Restore 仅恢复包目录(\packages 文件夹)中的文件,但不会恢复项目中的文件或以其他方式修改项目。例如,如果一个包在您的项目中添加了一些参考 DLL 或其他文件,如果您删除这些文件中的任何一个,则在恢复此包时不会重新添加它们。这可能会导致您的项目在构建时无法找到缺少的依赖项。

    但是,我不确定为什么卸载和重新安装不适合您。如果解决方案里面的包在源代码管理下,尽量让它脱离源代码管理。请检查您的项目文件,确保所有包的HintPath 正确。

    如果以上没有解决您的问题,请在使用命令行Update-Package -reinstall后将错误日志分享给我们。

    【讨论】:

    • 当我运行 update-package -reinstall 时,我在 Visual Studio 中弹出访问被拒绝。我请我们的软件架构师看看。修复与否后会通知您。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2020-05-13
    • 1970-01-01
    相关资源
    最近更新 更多