2017-08-14 88 views
0

我有一个CoreApp项目(CoreApp)和一个依赖于CoreApp项目的Project1。感谢来自MSFT的人,之前我可以使用Project1下的(CoreApp)子模块通过VSTS git编译。然而,现在在Project1中,每当我在CoreApp项目中引用一个模型(例如,一个AppUser类)时,我都会遇到构建错误 - “无法找到类型或名称空间名称'AppUser'(是否缺少using指令或装配参考?)“错误。我阅读了一些SO帖子,不仅改变了CoreApp项目中的文件夹名称,还改变了CoreApp Model名称空间,现在我得到了一个不同的错误 - “名称空间'CoreAppApp'中不存在类型或名称空间名称'CoreAppModels'(你是否缺少一个程序集引用?)[d:\ a \ 1 \ Project1 \ Project1.csproj]。我也继续得到前面的错误。在我看来,构建过程没有选择CoreApp程序集,或者更新的代码,但我确实看到CoreApp项目在构建过程中被拉下来了VSTS git submodule参考错误

所有这些都可以在我的电脑上正常工作和生成,我在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构建过程拉下最新子模块的代码?有谁知道我做错了什么?我拉我的头发,任何帮助表示赞赏。谢谢!

回答

0

请检查您的VSTS建立定义:

在获取源一步 - >显示高级设置 - >确保选中的结帐子模块 - >保存。

enter image description here

enter image description here

然后建立自己的project1一遍,Project1\CoreApp\bin\CoreApp.dll将从子模块被发现。

要更新主要回购sumodules,你可以得到源后添加命令行任务步骤:

工具:git

参数:submodule foreach "git pull origin master"

enter image description here

+0

我有该复选框被选中,并且还有递归级别集合。 – Joe

+0

我想我知道这个问题,但我不知道如何解决它。之前我更新了子模块并将其检入。但是,位于VSTS Project1仓库中的SHA散列(CoreApp)文件仍然指向旧版本的CoreApp。如何将此文件更新为更新后的CoreApp版本? – Joe

+0

要更新子模块,您只需要添加一个命令行任务,我的答案中的详细设置,您可以尝试一下。 –