因为我有几个构建共享一些包含公共构建任务的程序集,所以我有一个TFSBuild.proj用于所有构建并根据构建导入不同的目标,如下所示:
<Project DefaultTargets="DesktopBuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<Import Project="Build_1.targets" Condition="'$(BuildDefinition)'=='Build_1'" />
<Import Project="Build_2.targets" Condition="'$(BuildDefinition)'=='Build_2'" />
<Import Project="Build_3.targets" Condition="'$(BuildDefinition)'=='Build_3'" />
</Project>
Run Code Online (Sandbox Code Playgroud)
特定构建的每个目标都具有构建类型文件的常用内容,但在我的情况下,我还引用了在源代码管理中与TFSBuild.proj相同的文件夹中的一些任务.我想添加文件夹以包含一些测试构建目标,因为我的文件夹变得有点杂乱.以下说明了我的意思.
$(TFS project)\build\
TFSBuild.proj
Build_1.targets
...
Assembly1.dll
Assembly2.dll
...
Folder\
Test_target_1.targets
....
Run Code Online (Sandbox Code Playgroud)
但是,当我说明我的构建时,我发现Test_target_1.targets和Folder中的其他文件没有被复制到构建目录,而TFSBuild.proj和根级别的其他文件,就像它们的构建类型文件夹一样.被复制.这导致我的测试版本无法引用Folder中的文件,导致我的构建立即失败.换一种说法,
$(TFS project)\build\
TFSBuild.proj
Build_1.targets
...
Assembly1.dll
Assembly2.dll
...
Folder\
(nothing here)
Run Code Online (Sandbox Code Playgroud)
我意识到最简单的解决方法是摆脱文件夹并将其所有内容移动到构建文件夹,但我真的想拥有文件夹,如果可能的话.感谢您的帮助.