【问题标题】:VSTS git submodule reference errorVSTS git子模块引用错误
【发布时间】:2017-08-15 12:22:30
【问题描述】:

我有一个 CoreApp 项目 (CoreApp) 和一个依赖于 CoreApp 项目的 Project1。感谢 MSFT 在 SO 上的某个人,以前我能够使用 Project1 下的 (CoreApp) 子模块使用 VSTS git 编译它。但是,现在在 Project1 中,每当我引用 CoreApp 项目中的模型(例如,AppUser 类)时,我都会收到构建错误 - “找不到类型或命名空间名称‘AppUser’(您是否缺少 using 指令还是程序集参考?)”错误。我阅读了一些 SO 帖子,不仅更改了文件夹名称,还更改了 CoreApp 项目中的 CoreApp 模型命名空间,现在我得到了一个不同的错误 - “命名空间‘CoreAppApp’中不存在类型或命名空间名称‘CoreAppModels’(您是否缺少程序集引用?) [d:\a\1\Project1\Project1.csproj]。我还继续收到以前的错误。在我看来,构建过程没有拾取 CoreApp 程序集,或者更新了代码,但我确实看到 CoreApp 项目在构建过程中被拉下。

所有这些都可以在我的 PC 上正常运行。我验证了在 VSTS 上,我有带有哈希的 CoreApp 文件,以及带有条目的 .gitmodules -

[submodule "Project1/CoreApp"]
    path = Project1/CoreApp
    url = https://name.visualstudio.com/_git/CoreApp

再次,我确实看到 CoreApp 在构建过程中被拉下 -

 Copying file from "obj\Release\CoreApp.dll" to "bin\CoreApp.dll".
 CoreApp -> d:\a\1\s\Project1\CoreApp\bin\CoreApp.dll

在进行构建时,VSTS 上的构建过程是否会拉取最新的子模块代码?有谁知道我做错了什么?我正在拔头发,不胜感激。谢谢!

【问题讨论】:

    标签: azure-devops azure-pipelines azure-pipelines-build-task


    【解决方案1】:

    请检查您的 VSTS 构建定义:

    在获取源步骤 -> 显示高级设置 -> 确保选择了 Checkout 子模块 -> 保存。

    然后再次构建您的project1,将在子模块中找到Project1\CoreApp\bin\CoreApp.dll

    要更新主仓库中的 sumodules,您可以在获取源步骤之后添加 命令行任务

    工具:git

    参数:submodule foreach "git pull origin master"

    【讨论】:

    • 我确实选中了复选框,还设置了递归级别。
    • 我想我知道这个问题,但我不知道如何解决它。以前我更新了子模块并将其签入。但是,位于 VSTS Project1 存储库中的具有 SHA 哈希 (CoreApp) 的文件仍指向旧版本的 CoreApp。如何将此文件更新为更新后的 CoreApp 版本?
    • 更新子模块只需要添加一个命令行任务,详细设置在我的回答中,你可以试试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 2022-10-13
    • 1970-01-01
    • 2019-06-18
    • 2017-10-21
    • 2018-12-01
    • 2015-04-24
    相关资源
    最近更新 更多