MSB4057 Ошибка при использовании MSBuild с RAD Studio 2009 - PullRequest
2 голосов
/ 02 декабря 2008

Резюме: я могу скомпилировать проект RAD Studio 2009 с использованием MSBuild на сервере сборки с помощью командной строки RAD Studio, но не с помощью командного файла. Однако этот же пакетный файл успешно работает на моей рабочей станции. На сервере возвращена ошибка: 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 Ответ

3 голосов
/ 02 декабря 2008

Я понял это. Проследив страницы результатов поиска Google, пытаясь выяснить, как заставить мой сервер автоматической сборки это обработать, я посмотрел пути в пакетной программе и заметил, что он отличается от пути установки.

@SET BDS=C:\RS\

должно было быть

@SET BDS=C:\RS\6.0\

Урок: MSBUILD может вернуть ошибку MSB4057, если не может разрешить путь BDS.

Стороннее примечание: если это простое исправление не работает для вас, убедитесь, что в файлах вашего проекта есть правильные инструкции по трассировке. см. Эту статью на MSDN

...