0

我有一个包含多个项目的 VS 解决方案,我正在尝试创建一个构建定义来仅构建其中一个。

我在 TFS 中的项目结构是这样的:

    $myproject/Dev                            --- myproject.sln file is here
    $myproject/Dev/Src/category/item/project1 --- project I want to build
    $myproject/Dev/Src/web/item/project2      --- project2
    $myproject/Dev/Src/service/item/project3  --- project3

project1 has a project reference set to project2

然后我像这样设置我的构建定义:

   1. In the Workspace tab

    Status   Source Control Folder                        Build Agent Folder
    --------------------------------------------------------------------
    Active   $/myproject/Dev/Src/category/item/project1   $(SourceDir)\Dev\Src\category\item\project1

在流程选项卡中,要构建的项目 | 要构建的项目,我只选择 project1 来构建。构建时出现错误:

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1200): The referenced project '..\..\..\web\item\project2.csproj' does not exist.

如果我将源代码控制文件夹设置为 $/myproject/Dev 并将构建代理文件夹设置为 $(SourceDir)\Dev 那么一切都很好,但我只想在将某些内容签入 project1 文件夹时开始构建,而不是 $/ 下的所有内容我的项目/开发。

4

1 回答 1

2

如果 project1 引用 project2 (如您所说),您如何期望 project1 在没有project2 之前编译的情况下进行编译?

如果您只想编译 project1,那么您需要一个程序集引用,而不是 project2 的项目引用。

但是不要打扰,在您的构建定义中构建 project1及其依赖项,它既简单又高效。

于 2012-06-13T19:54:37.263 回答