2013-01-31 18 views
7

私のTFSビルドプロジェクトに問題があります。私はhereからVSのプロジェクトを設定するまでの例に従っています。プロジェクト内の複数のビルドテンプレート(xamlファイル)に関する問題

私はカスタムアクティビティだけのプロジェクトとテンプレートだけのプロジェクトを持っています。私が持っている問題は、テンプレートプロジェクトは1つのxamlファイルのみを含むことができるということです。コピーして同じプロジェクトに貼り付けるとビルドされません。

エラー102「リソース」パラメータにobj \ Debug \ TfsBuild_Process_BeforeInitializeComponentHelper.txtという項目が複数回指定されています。重複した項目は、「リソース」パラメータでサポートされていません。

私はそれを削除すると、それはちょうど良い構築されます。すべてが機能します。ビルドをキューに入れるとビルドされます。

私はまたhereで提案された解決策を試しましたが、私の問題を解決していないようです。

Solution:

Renaming the form name in the solution explorer.

Change the class name in the .cs and Designer.cs file.

Change the constructor and destructor name (which is same as class name)

Change the name space name (if needed).

Hereプロジェクトをダウンロードするためのリンクです。

私は理由を理解できないようです。どんな助けでも大歓迎です!

+0

に正確に同じ問題が、これですべての運を持って? –

答えて

8

まだこの問題があるかどうかわかりませんが、今日も問題がありました。私はあなたがまだ問題に直面している場合、あなたや他の人を助けることができる解決策を見つけました。

ビルドプロセステンプレートをコピーすると、x:ClassプロパティがTfsBuild.Processに自動的に設定されます。同じ値を持つプロセステンプレートが複数ある場合は、プロジェクトをビルドするときにこのエラーが発生します。

<Activity mc:Ignorable="sads sap sap2010" x:Class="TfsBuild.Process" this:Process.BuildNumberFormat="$(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)" this:Process.AgentSettings="[New Microsoft.TeamFoundation.Build.Workflow.Activities.AgentSettings() With {.MaxWaitTime = New System.TimeSpan(4, 0, 0), .MaxExecutionTime = New System.TimeSpan(0, 0, 0), .TagComparison = Microsoft.TeamFoundation.Build.Workflow.Activities.TagComparison.MatchExactly}]" this:Process.Verbosity="[Microsoft.TeamFoundation.Build.Workflow.BuildVerbosity.Normal]" this:Process.OutputFullHistory="True" this:Process.OutputBranchOrigin="True" this:Process.OnlyOutputChangedFiles="True" this:Process.StartChangeset="0"...... 

私は、すべてのテンプレートのための別の名前でTfsBuild.Processを置き換えることで問題を解決した(例。TfsBuild.ProcessLabDefault)。 のインスタンスもすべて変更する必要があります。プロセスは、2つがリンクされているため(例:this:ProcessLabDefault)、変更する必要があります。

<Activity mc:Ignorable="sads sap sap2010" x:Class="TfsBuild.MyProcess" this:MyProcess.BuildNumberFormat="$(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)" this:MyProcess.AgentSettings="[New Microsoft.TeamFoundation.Build.Workflow.Activities.AgentSettings() With {.MaxWaitTime = New System.TimeSpan(4, 0, 0), .MaxExecutionTime = New System.TimeSpan(0, 0, 0), .TagComparison = Microsoft.TeamFoundation.Build.Workflow.Activities.TagComparison.MatchExactly}]" this:MyProcess.Verbosity="[Microsoft.TeamFoundation.Build.Workflow.BuildVerbosity.Normal]" this:MyProcess.OutputFullHistory="True" this:MyProcess.OutputBranchOrigin="True" this:MyProcess.OnlyOutputChangedFiles="True" this:MyProcess.StartChangeset="0"...... 

私はインターフェイスを使用して、これを変更する方法を見つけられませんでした、コードの表示を見つけて、作品を交換&。それが役に立てば幸い。

0

私はこの問題に遭遇し、私が見つけた解決策を追加したかったのです。 XAMLファイルのプロパティをチェックすると、それらをプロジェクトにリンクすると、XamlAppDefのBuildActionが割り当てられます。これを 'コンテンツ'に変更すると、エラーが解決されます。

プロパティ画面を表示するには、ソリューションエクスプローラでXAMLファイルを強調表示し、ファイルをF4キーまたは右クリックし、コンテキストメニューから[プロパティ]を選択します。

これが役に立ちます。

+1

これを行うと、ワークフローのタイプチェックが削除されます。カスタムテンプレートを安定させたい場合は、これをお勧めしません。 – harlam357

5

私は次のアプローチを使用し、非常にうまく機能しました。置き換えが必要なのは、raw xamlの最初の行にある2つの場所にあるTfsBuildだけです。リンクから

http://social.msdn.microsoft.com/Forums/vstudio/en-US/d3fb6b89-b711-4a02-a10a-a88a0cb4f714/unable-to-add-more-than-one-templatexaml-into-activity-library-workflow-project?forum=tfsprocess

1ソース管理にDefaultTemplate.xamlのあなたのコピーを右クリックしてビューを選択...メモ帳で開きます(あなたはまた、テンプレートを右クリックすることができますVSを選択して[コードを表示]を選択します)。

2を第1のラインの変化:

  1. **x:Class="TfsBuild.Process"****x:Class="YourProcessTemplateName.Process"**
  2. **xmlns:this="clr-namespace:TfsBuild"**から**xmlns:this="clr-namespace:YourProcessTemplateName"**
+0

これは、IIMIIの回答(現在のトップ)よりも優れています。これは、ファイルに2つの変更が必要なためです。 – DonBecker

+0

明らかに良い。 – mark

関連する問題