我目前正在TFS中更新我们的构建定义,我需要找到需要在我们的解决方案中构建的项目。这是通过向项目添加文件并将其用作标志来完成的。目前,这样做是这样的:
<mtbwa:FindMatchingFiles
DisplayName="Find ClickOnce Projects"
sap2010:WorkflowViewState.IdRef="FindMatchingFiles_2"
MatchPattern="[String.Format("{0}\**\ProjectToBuild.txt", Path.GetDirectoryName(localProject))]"
Result="[ClickOnceFlags]" />
我们在不同的项目中有不同的标志,不同的构建模板文件有不同的构建模板文件。我想从MatchPattern属性中删除“ProjectToBuild.txt”并添加一个名为FlagName的变量,该变量在定义构建定义时设置。这样,我们对多个构建定义使用相同的构建模板文件。
结果如下:
<mtbwa:FindMatchingFiles
DisplayName="Find ClickOnce Projects"
sap2010:WorkflowViewState.IdRef="FindMatchingFiles_2"
MatchPattern="[String.Format("{0}\**\{1}", 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.
任何人都可以告诉我这里出了什么问题吗?
答案 0 :(得分:0)
我们最终修复了错误,但它与上面的命令没有任何关系,它与我们在构建过程中使用的其中一个程序有关,因为它在运行时作为测试没有响应建立。
更确切地说,我们试图测试使用我们构建的定制程序的部署方法。我们没有检查过该程序,它实际上使用了该标志来确定程序版本(这只是使用测试版本时的一个问题)。这导致了一个不一致的版本,这导致了链条的进一步问题。