質問

コードベースのごく一部はレガシー Java コードです。このプロジェクトをビルドするために ant を呼び出す新しいビルドを追加しようとしています。

最初の問題は、TFS では .Net ソリューションをビルドしないビルドを作成できないことです。以前のビルド ファイルをコピーし、ビルドのエントリ ポイントである EndToEndIteration タスクを追加することで、この問題を回避しました。

問題は、通常のビルド変数がどれも設定されておらず、$(BuildDirectory)、$(SolutionRoot) がすべて空白であることです。これは、パスをハードコーディングせずに Ant タスクを呼び出すことができないことを意味します (これは絶対にできません)。

何か案は?

役に立ちましたか?

解決 4

すべての答えてくれてありがとう。

最後に、私は、ビルドファイルに次の空のソリューションを含むに頼っ。この方法で、すべての変数が移入し、私は単に私が望んでいたすべてをしたどの含まれています。

他のヒント

あなたはを見てみたいことがありのTeampriseのAntやMavenのタスクを構築することを可能にするこの拡張機能を構築TFSから。

  1. 環境変数をまだ持っていない場合は、環境変数を保存および取得するタスクを作成します。Java 関連のことを行うには間違いなく環境変数が必要になります ( MSBuild 拡張パック)
  2. カスタム タスクを作成して Ant をラップするか、スクリプト タスクを使用します。 MSBuild コミュニティ タスク コレクション
  3. 100 万回実行して、問題を解決していきます。通常は、コマンド ラインから実行する方が簡単で早いため、ターミナル内で msbuild.exe を友達にします。

必要な情報を環境変数間で受け渡しできるため、やりたいことがすべて可能になります。パスをハードコーディングすることをお勧めするつもりはありませんが、設定をどこかに置く必要があり、それはすべて、何を変更したいか、どのように整理したいかというトレードオフになります。本当に必要な場合は、すべての構成をデータベースにプッシュし、上記のリンクにある SQL タスクの 1 つを使用してそれを吸い出すことができますが、不必要な可能性があるかなりの複雑さが追加されることに注意してください。

自問してみてください:

  • この値はどのくらいの頻度で変更される可能性がありますか?
  • 変更された場合に実行する必要がある完全なタスクは何ですか?

その答えをどこかに書き留めて、チームの全員がそれを理解していることを確認してください。システムの構築に関しては、私の意見では「少ないほど良い」です。それを行う最も簡単な方法を見つけて、それが受け入れられなくなるまでそれを実行し、その後、複雑さが追加されます...TFS はすでに十分に複雑です。

私はあなたがここに仕事のための間違ったツールを使用していると思う - TFSは、.NETアプリケーション以外を構築するための良い解決策になることはありません。私はあなただけで、スタンドアロンの容量でantを使用したほうが良いと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top