如何自动化引用源文件夹外多个项目的 Web 项目?
How do I automate a web project referencing multiple projects outside of the source folder?
我正在使用门控签入创建自动构建。但是我们有一些项目引用了源目录之外的其他 Web 应用程序。所以我们有一个名为 'PolicyRating.sln' 的项目,它位于源代码管理的 'Client' 文件夹中。它引用了我们 'CoreFramework' 项目集合中的其他 5 个项目,当我尝试将它部署到我们的 QA 服务器时,它无法在构建服务器上找到引用的项目。它找不到项目文件。有没有办法构建一个引用源目录之外的其他项目的项目?我正在使用 TFS 2013
如果您使用的是 TFVC,则需要映射一个包含所有这些项目的工作区。
来自https://msdn.microsoft.com/en-us/library/ms181716.aspx:
On the Source Settings tab:
TFVC: In the Working folders table, specify the version-control folders that contain the files that
your build process requires.
Tip To ensure that your build process
functions correctly and to improve performance, include all folders,
and only these folders, that contain files that your build process
requires. See Work with build workspaces.
如果所有内容都分散在多个团队项目集合中,您将无法轻松做到这一点:项目集合旨在完全隔离,并且旨在适用于您希望代码、工作项、测试用例、构建等相互独立的情况。
您仍然可以使用 TFS API 来完成它,但它不一定是直截了当的。
另一种选择是使用二进制引用,并将二进制引用转换为 NuGet 包。但是,您仍然需要在其他团队项目集合中设置一个 build/packaging/publishing 过程。这将需要您设置单独的构建控制器和构建代理,因为您无法跨团队项目集合共享构建资源。
如果您正在使用 Git 并且应用程序分布在多个存储库中,您可以使用子模块。
最终,如果您在多个团队项目集合中共享代码,最好的选择是将它们整合到一个团队项目集合中。
我正在使用门控签入创建自动构建。但是我们有一些项目引用了源目录之外的其他 Web 应用程序。所以我们有一个名为 'PolicyRating.sln' 的项目,它位于源代码管理的 'Client' 文件夹中。它引用了我们 'CoreFramework' 项目集合中的其他 5 个项目,当我尝试将它部署到我们的 QA 服务器时,它无法在构建服务器上找到引用的项目。它找不到项目文件。有没有办法构建一个引用源目录之外的其他项目的项目?我正在使用 TFS 2013
如果您使用的是 TFVC,则需要映射一个包含所有这些项目的工作区。
来自https://msdn.microsoft.com/en-us/library/ms181716.aspx:
On the Source Settings tab:
TFVC: In the Working folders table, specify the version-control folders that contain the files that your build process requires.
Tip To ensure that your build process functions correctly and to improve performance, include all folders, and only these folders, that contain files that your build process requires. See Work with build workspaces.
如果所有内容都分散在多个团队项目集合中,您将无法轻松做到这一点:项目集合旨在完全隔离,并且旨在适用于您希望代码、工作项、测试用例、构建等相互独立的情况。
您仍然可以使用 TFS API 来完成它,但它不一定是直截了当的。
另一种选择是使用二进制引用,并将二进制引用转换为 NuGet 包。但是,您仍然需要在其他团队项目集合中设置一个 build/packaging/publishing 过程。这将需要您设置单独的构建控制器和构建代理,因为您无法跨团队项目集合共享构建资源。
如果您正在使用 Git 并且应用程序分布在多个存储库中,您可以使用子模块。
最终,如果您在多个团队项目集合中共享代码,最好的选择是将它们整合到一个团队项目集合中。