代码之家  ›  专栏  ›  技术社区  ›  Jeremiah

MSB4057在RAD Studio 2009中使用MSBuild时出错

  •  2
  • Jeremiah  · 技术社区  · 16 年前

    摘要:我能够使用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
    
    1 回复  |  直到 11 年前
        1
  •  4
  •   Jeremiah    16 年前

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

    @SET BDS=C:\RS\
    

    应该是

    @SET BDS=C:\RS\6.0\
    

    要学习的教训:当MSBUILD不能返回MSB4057错误时,它可以返回MSB4057错误 解析BDS路径。

    旁注:如果这个简单的修复不适合你,请确保你的项目文件中有正确的跟踪说明。 see this article on msdn