繁体   English   中英

TFS构建定义中的MatchPattern导致MSBUILD:错误MSB1008:只能指定一个项目

[英]MatchPattern in TFS build definition causing MSBUILD : error MSB1008: Only one project can be specified

我目前正在TFS中更新构建定义,并且我需要找到需要在我们的解决方案中构建的项目。 这是通过将文件添加到项目并将其用作标志来完成的。 目前,这样做是这样的:

<mtbwa:FindMatchingFiles 
       DisplayName="Find ClickOnce Projects" 
       sap2010:WorkflowViewState.IdRef="FindMatchingFiles_2" 
       MatchPattern="[String.Format(&quot;{0}\**\ProjectToBuild.txt&quot;, Path.GetDirectoryName(localProject))]" 
       Result="[ClickOnceFlags]" />

我们在不同的项目中有不同的标志,在不同的构建中有不同的构建模板文件。 我想从MatchPattern属性中删除“ ProjectToBuild.txt”,并添加一个名为FlagName的变量,该变量在定义构建定义时设置。 这样,我们将相同的构建模板文件用于多个构建定义。

结果如下:

<mtbwa:FindMatchingFiles 
       DisplayName="Find ClickOnce Projects" 
       sap2010:WorkflowViewState.IdRef="FindMatchingFiles_2" 
       MatchPattern="[String.Format(&quot;{0}\**\{1}&quot;, Path.GetDirectoryName(localProject), FlagFileName)]" 
       Result="[ClickOnceFlags]" />

我将字符串格式的文件名更改为{1},并向构建模板文件添加了一个名为FlagFileName的变量。

<x:Property Name="FlagFileName" Type="InArgument(x:String)" />

为了测试这一点,我只需将FlagFileName变量设置为“ ProjectToBuild.txt”,并尝试运行该构建,并期望获得与以前相同的结果。 但相反,它无法完成构建,引用

MSBUILD : error MSB1008: Only one project can be specified.

谁能告诉我这里出了什么问题?

我们最终解决了该错误,但与上面的命令无关,它与我们在构建过程中使用的程序之一有关,该程序在作为测试构建运行时未响应,因此没有响应。

更准确地说,我们正在尝试测试一种利用我们构建的定制程序的部署方法。 我们没有检查该程序,它实际上使用该标志来确定程序版本(这只是使用测试版本时的一个问题)。 这导致版本不一致,从而导致问题进一步恶化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM