1

MSBuild を使用してビルドを実行している場合、MSBuild はどのコンテキストで実行されますか?

私が尋ねている理由は、プロジェクトが VS2010 (同じマシン上) でビルドされている場合は完全に機能するコマンド ライン プログラム (ajax 縮小) を呼び出すビルド前のイベントがあるためですが、ビルド システム (CCNet ) を構築しています。私が得るエラーは9009です。これは、ファイルが見つからないことを意味します。コマンド ライン プログラムには、その場所の環境パスが設定されているため (環境パスは setx を介して設定されます。現在のユーザーに対してのみ設定されているのでしょうか?)、その名前だけを呼び出すと、CCNet が MSBuild を呼び出す場合を除いて、すべての場合で完全に機能します。

4

1 に答える 1

1

MSBuild他の開発ツールと同様に、起動したユーザー コンテキストで実行されます。

Visual Studio を介して実行するmsbuildと、ログイン コンテキストで Visual Studio が実行され、ビルドが実行されるため、実行されます。

何らかのビルド サービスを介して実行する場合、その答えはそのビルド サービスがどのように動作するかによって異なります。たとえば、TFS ビルドは、TFS ビルド サービスのログイン資格情報用に構成した任意のユーザーとして MSBuild を起動します。CC.NET をサービスとして実行するように構成した場合は、実行しているユーザーも指定する必要がありました。それは、MSBuild も実行される人物です。

ビルド用に特定の環境をセットアップする必要がある場合は、いくつかのオプションがあります。非常に「巨大なハンマー」アプローチですが、最も簡単な方法は、すべてのユーザーのビルド マシンで環境をグローバルに構成することです。その他のオプションには、ビルドで何らかの事前構成ステップを実行することや、環境のセットアップ後にサービスを手動で起動するためのスタートアップ バッチ ファイルを作成することが含まれます。

于 2013-02-12T22:06:32.090 に答える