我有一个包含多个项目的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文件夹时启动构建,而不是一切在$ / myproject / Dev。
下答案 0 :(得分:2)
如果project1引用project2(如你所说),你如何期望project1编译而不用 project2进行编译?
如果您只想编译project1,那么您需要一个程序集引用而不是项目对project2的引用。
但是请不要理会,在构建定义中构建project1 和它的依赖项,它简单而有效。