0

バッチ ファイルを使用してビルドされた大規模な非 Visual Studio C++ プロジェクトがあります。プロジェクトのプロパティでカスタマイズされた「ビルドコマンドライン」を使用して、これをVisual Studioにmakefileプロジェクトとして統合しました。これはうまく機能し、1年以上機能しています。

現在、Team Foundation Server の導入と自動ビルドの構成を検討しています。

Visual Studio でプロジェクトをビルドすると、プロジェクトは通常どおりビルドされます。
自動ビルド サーバーを使用してプロジェクトをビルドすると、毎回ビルドが失敗します。

ビルド レポートでログ ファイルを表示するオプションはグレー表示されています。与えられたレポートは

コマンド「Autobuild.cmd」はコード 1 で終了しました。

autobuild は、ソリューションの「ビルド コマンド ライン」で指定された cmd ファイルです。

これが当てはまる理由を誰でも考えることができます.ビルドサーバーは、[ビルドするアイテム]ボックスで指定されたプロジェクトでビルドコマンドを実行するだけだと思いました。この場合、なぜ失敗するのかわかりません。

4

2 に答える 2

1

考えられる理由はたくさんあります。残念ながら、あなたはその質問に答えるのに十分な情報を提供していません。

最初に試すことは、ビルド定義のログ レベルを に変更することDiagnosticです。(新しいビルドをキューに入れるときにもこれを行うことができます)。

また、実際にメイクファイルを msbuild.proj ファイルにラップすることをお勧めします。

次のような簡単なもの:

<Project ToolsVersion="4.0" DefaultTargets="build"
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="build">
    <Exec Command="autobuild.cmd" />
  </Target>
</Project>

Exec タスクには、cmd の呼び出し方法をカスタマイズするための多数のオプションがあり、エラーの診断に役立ちます。

一般に、TFS ビルドを利用したい場合は、できるだけ多くの autobuild.cmd を msbuild に移行することをお勧めします。MSBuild は、いわば TFS の "makefile" 言語です。

于 2013-03-27T15:26:39.020 に答える
0

ビルド定義には、ロギングのオプションがあり、そこでロギングに変更できますVerbose。その場合、ログファイルに何らかの情報が得られるかもしれません。

また、コード 1 で終了する問題については、cmd プログラムで出力される追加の情報行を追加する必要があると思います。TFS ビルドでのログがアクティブな場合は、それに関する詳細情報が表示される可能性があります。

于 2013-03-27T15:19:19.990 に答える