2

概要: RAD Studio コマンド プロンプトを使用して、ビルド サーバーで MSBuild を使用して RAD Studio 2009 プロジェクトをコンパイルできますが、バッチ ファイルではコンパイルできません。ただし、この同じバッチ ファイルは、私のワークステーションで正常に動作します。サーバーで返されるエラーは次のとおりです: MSB4057。

RAD Studio で MSBuild を使用する方法を学んでおり、MSBuild を使用できるようにしようとしています。環境変数を適切に設定し、プロジェクトをコンパイルするバッチ プログラムを生成しました。これは私のワークステーションで正常に動作しています。

ただし、すべてをビルド サーバーに移動すると機能しません。

これがなぜ起こっているのかについての答えに近いと思います。サーバーで次のように入力することで、RAD Studio コマンド プロンプトからプロジェクトをコンパイルできます。

msbuild C:\MyProject\Group\Project.groupproj

これは、実行しようとしているコマンド ファイルです。

@SET BDS=C:\RS\
@SET BDSCOMMONDIR=C:\Users\Public\Documents\RAD Studio\6.0
@SET FrameworkDir=C:\Windows\Microsoft.NET\Framework\
@SET FrameworkVersion=v2.0.50727
@SET FrameworkSDKDir=
@SET PATH=%FrameworkDir%%FrameworkVersion%;%FrameworkSDKDir%;%PATH%

msbuild C:\MyProject\Group\Project.groupproj /t:Clean;Build /p:"Config=Release" 

これは、コマンド プロンプトからの出力です。

C:\>msbuild C:\MyProject\Group\Project.groupproj /t:Clean;Build /p:"Config
=Release"
Microsoft (R) Build Engine Version 2.0.50727.1434
[Microsoft .NET Framework, Version 2.0.50727.1434]
Copyright (C) Microsoft Corporation 2005. All rights reserved.

Build started 12/2/2008 12:24:26 PM.
__________________________________________________
Project "C:\MyProject\Group\Project.groupproj" (Clean;Build target(s)):

Target Clean:
    Target Project1:Clean:
        __________________________________________________
        Project "C:\MyProject\Group\Project.groupproj" is building "C:\MyProject\Project1\Project1.cbproj" (Clean target(s)):

        C:\MyProject\Project1\Project1.cbproj : error MSB4057: The target "Clean" does not exist in the project.

        Done building project "Project1.cbproj" -- FAILED.

Build FAILED.
C:\MyProject\Project1\Project1.cbproj : error MSB4057: The target "Clean" does not
 exist in the project.
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.01
4

1 に答える 1

4

私はそれを考え出した。自動ビルド サーバーでこれを処理する方法を見つけようとして Google 検索結果のページをトレースした後、バッチ プログラムのパスを調べたところ、インストール パスとは異なることに気付きました。

@SET BDS=C:\RS\

になるはずだった

@SET BDS=C:\RS\6.0\

教訓: BDS パスを解決できない場合、MSBUILD は MSB4057 エラーを返すことがあります。

補足: この簡単な修正がうまくいかない場合は、プロジェクト ファイルに適切なトレース手順があることを確認してください。msdn のこの記事を参照してください

于 2008-12-02T19:19:38.683 に答える