【问题标题】:Add reference dlls for TFS 2015 Build Automation为 TFS 2015 Build Automation 添加参考 dll
【发布时间】:2023-03-09 12:40:02
【问题描述】:

我在本地服务器上使用 TFS 2015 和 Visual Studio 2015。我有一个引用来自 2 个不同存储库的项目的解决方案。

在本地开发者机器上,我有使用相对路径的解决方案和项目文件引用:

TFS
----Repo1
--------Project1
--------Project2
--------Project3
--------Solution1
----Repo2
--------Project4
--------Project5
--------Project6
--------Solution2

解决方案 1 使用 ....\Repo2\Project4 引用 Project4。在 VS 2015 上本地构建解决方案时,这很好用

现在我正在尝试在 TFS 2015 中自动构建。由于解决方案 1 的构建定义位于 Repo1 中,因此它无法引用 Repo2 中的任何内容。所以我将 Repo2 映射为 Repo1 中的一个文件夹,并单独构建所有项目。这有效,从 Project1 到 Project6 的所有项目都单独构建,除了最后一个项目,它引用 Project4、Project5 和 Project6。我收到以下错误消息:

错误 CS0246:找不到类型或命名空间名称“Project4”(您是否缺少 using 指令或程序集引用?)

我尝试使用 /p:Reference、/p:ReferencePath、/p:AdditionalLibPaths 以多种方式向 MSBuild Arguments 添加参数:这是一次尝试:

/p:ReferencePath="$(build.sourcesdirectory)\Repo2\Project4\bin\Debug $(build.sourcesdirectory)\Repo2\Project5\bin\Debug $(build.sourcesdirectory)\Repo2\Project6\bin\调试”

但它似乎不起作用。

如何添加对缺失 dll 的引用以便构建我的最后一个项目?

谢谢

【问题讨论】:

  • 错字:解决方案 1 使用 ..\..\Repo2\Project4 引用 Project4。这在 VS 2015 上本地构建解决方案时效果很好
  • 您说的是同一个团队项目中的两个不同的 Git 存储库,还是分布在两个团队项目中的两个不同的 TFVC 存储库?答案因您使用的不同而有所不同。
  • 在此处或在 OneDrive 上共享详细的构建日志。

标签: visual-studio-2015 tfs msbuild tfs-2015


【解决方案1】:

听起来您正在使用 TFVC(因为您谈论的是“映射”文件夹),但这个答案对于 Git 来说是一样的:

使用项目引用而不是程序集引用。

【讨论】:

  • 我说的是 2 个不同的 TFVC 存储库。
  • 所以顶级项目的项目文件正在引用其他 Repo 中的项目。在本地 VS 2015 环境中,这是使用 ..\..\Repo2\Project4 设置的,并且构建良好。在 TFS 2015 自动构建系统中,它默认只关闭 Repo1,它没有获取 Repo2 的源,因此路径 ..\..\Repo2\Project4 不存在。作为一种解决方法,我将 Repo2 映射为 Repo1 中的一个文件夹。所有项目都是单独构建的,即使是 Repo2 中的项目。但是顶层似乎没有在映射的 Repo2 文件夹中找到项目
  • 您必须为其他团队项目显式添加工作区映射。
猜你喜欢
  • 2017-09-01
  • 2015-11-15
  • 1970-01-01
  • 1970-01-01
  • 2016-02-18
  • 2018-12-31
  • 2018-10-02
  • 1970-01-01
  • 2015-04-24
相关资源
最近更新 更多