2

摘要:我能够使用 RAD Studio 命令提示符在构建服务器上使用 MSBuild 编译 RAD Studio 2009 项目,但不能使用批处理文件。但是,这个相同的批处理文件在我的工作站上可以成功运行。在服务器上返回的错误是:MSB4057。

我只是在学习如何将 MSBuild 与 RAD Studio 一起使用,并试图让 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

我想到了。在跟踪谷歌搜索结果页面试图找出一种方法让我的自动构建服务器处理这个之后,我查看了批处理程序中的路径,发现它与安装路径不同。

@SET BDS=C:\RS\

本来应该

@SET BDS=C:\RS\6.0\

经验教训:MSBUILD 在无法解析 BDS 路径时会返回 MSB4057 错误。

旁注:如果这个简单的修复对您不起作用,请确保您的项目文件中有正确的跟踪说明。在 msdn 上看到这篇文章

于 2008-12-02T19:19:38.683 回答