2016-12-02 8 views
0

現在、TFSのビルド定義を更新しています。私たちのソリューションでビルドする必要があるプロジェクトを見つける必要があります。これは、ファイルをプロジェクトに追加し、それをフラグとして使用することによって行われます。現在、これは次のように行われています。MSBUILDを引き起こすTFSビルド定義のMatchPattern:エラーMSB1008:1つのプロジェクトしか指定できません

<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]" /> 

I {1}を文字列形式でファイル名を変更し、そしてビルドテンプレートファイルにFlagFileNameという変数を追加しました。これをテストする

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

は、私は単に「ProjectToBuild.txt」にFlagFileName変数を設定して、前と同じ結果を期待して、ビルドを実行してみました。しかし、その代わりに、それは

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

を引用すると、いずれかがここで何が悪かったのかを私に助言することができ、ビルドを完了できませんでしたか?

+0

ProjectToBuild.txtの詳細値は何ですか? OneDriveでビルドプロセステンプレートファイルを共有し、チェックするためのテストを行います。 –

+0

この問題は解決しますか?そうでない場合は、OneDriveでビルドプロセステンプレートファイルを共有できますか? –

+0

こんにちはstarain、申し訳ありませんが、ここにビルドファイルを投稿することはできません。しかし、私たちはエラーを修正してしまいましたが、上記のコマンドとは関係がありませんでした。ビルドプロセスで使用したプログラムの1つと何かが関係していました。 。それは最初にキャッチしなかった理由です:) –

答えて

0

エラーを修正しましたが、上記のコマンドとは関係ありませんでした。ビルドプロセスで使用したプログラムのいずれかと関係がありました。テストビルド。

具体的には、私たちが作成したカスタムメイドのプログラムを利用したデプロイメントメソッドをテストしようとしていました。私たちはそのプログラムをチェックしていませんでしたが、実際にはそのフラグを使ってプログラムのバージョンを判断しました(これはテストビルドを使用する場合にのみ問題でした)。これにより矛盾したバージョンが発生し、チェーンのさらに深刻な問題が発生しました。

関連する問題