BuildAgentで継続的インテグレーションビルドを実行していますが、正常に動作しません。最近、コードベースをC#6.0に変更し、プロジェクトをToolsVersion 14に変更しました。
ビルドサーバー(TFS 2012)にVisual Studio 2015をインストールしました。ここでC#6.0コードをチェックインすると、最初のプロジェクトでビルドが失敗します(「$」は予期しないか何かです)
BuildTemplateは「DefaultTemplate.11.1」です。ログファイルを確認すると、ビルドが間違ったcsc.exe(C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Csc.exe)を呼び出します。
スイッチなしでプロジェクトでMSBuild/14.0/Bin/MSBuild実行可能ファイルを起動すると、ビルドは成功します。 TFS BuildAgentがToolsVersionを使用しない理由と、TFS 2012を取得してVisual Studio 2015ソリューションをビルドする方法
MSBuildArgument /tv:14.0を追加しても失敗します。 Visual Studio 2015に同梱されている.NET 4.6 RC Frameworkの一部であるMSBuildのバージョン12を呼び出します。
MSBuildアクティビティのToolsPathを変更すると、ビルドは機能しますが、UnitTestを実行しようとすると箇条書きが表示されます。 「Missing dlls "Microsoft.VisualStudio.TestPlatform.Utilities.dll"例外が発生します。 (VS2012はビルドサーバーにもインストールされます)。
更新:ユニットテストで別のエラーが表示されるようになりました。
TF900548: An error occurred publishing the Visual Studio test results.
Details: 'Method not found:
'System.Collections.Generic.IEnumerable<System.String>
Microsoft.VisualStudio.TestPlatform.Utilities.InferSettingsHelper.MergeRunSettingsAndFindCompatibleSources(Microsoft.VisualStudio.TestPlatform.ObjectModel.Architecture
ByRef,
Microsoft.VisualStudio.TestPlatform.ObjectModel.FrameworkVersion
ByRef, System.String, System.String,
System.Collections.Generic.IDictionary`2<System.String,System.Collections.Generic.KeyValuePair`2<Microsoft.VisualStudio.TestPlatform.ObjectModel.Architecture,Microsoft.VisualStudio.TestPlatform.ObjectModel.FrameworkVersion>>,
System.Xml.XPath.IXPathNavigable, System.String ByRef)'.'
ビルドテンプレートの内部に毎日住んでいない私たちにとって、ここでそれが私のために働いたステップがあります:
まず、ビルドに関連付けられているテンプレートを見つけます(テンプレートの場所が既にわかっている場合は、いくつかの手順をスキップします)。
ビルド定義を右クリックして、_Edit build definition
_を選択するだけです
Process
タブを選択すると、テンプレートの名前が表示されます(カスタマイズしていない場合は、おそらくDefaultTemplateになります)。一番右の_Show details
_をクリックして、テンプレートのパスを表示します。
Home
]タブに移動し、[_Source control Explorer
_]をクリックしますRun MSBuild for Project
_が見つかるまでスクロールします右側の小さなアイコンをクリックしてください。VisualStudioが爆発してクラッシュする可能性があるため、入力しないでください。
以下を入力してください"C:\Program Files (x86)\MSBuild\14.0\bin"
私にとって_Run MSBuild for Project
_は2か所にありました。
したがって、両方の場所で上記の手順を繰り返し、_.xaml
_ファイルをチェックインした後、ビルドが正常に機能しました。
TFSツール内からエージェント/コントローラーをリサイクルする必要がある場合があります。
テンプレートの編集msbuildアクティビティのToolPathを「MSBuild/14.0/Bin/MSBuild」に変更します
回答を参照してください by Marson 。
TfvcTemplate.12.xamlビルドプロセステンプレートと/ tv:14.0ビルド引数は私のために働いた。
msbuild arguments /p:VisualStudioVersion=14.0を使用します