Question

Résumé: Je peux compiler un projet RAD Studio 2009 à l'aide de MSBuild sur un serveur de construction à l'aide de l'invite de commande RAD Studio, mais pas avec un fichier de traitement par lots. Ce même fichier de commandes fonctionne cependant correctement sur mon poste de travail. L'erreur renvoyée sur le serveur est la suivante: MSB4057.

Je viens d'apprendre à utiliser MSBuild avec RAD Studio et j'essaie de faire en sorte que les éléments MSBuild fonctionnent avec. J'ai généré un programme de traitement par lots qui définira les variables d'environnement de manière appropriée, puis compilera le projet pour moi. Cela fonctionne bien sur mon poste de travail.

Cependant, lorsque je déplace tout sur un serveur de construction, cela ne fonctionne pas.

Je pense que je suis sur le point de comprendre pourquoi cela se produit. Je peux obtenir la compilation de mon projet à partir de l'invite de commande de RAD Studio en tapant ceci sur le serveur:

msbuild C:\MyProject\Group\Project.groupproj

Il s’agit du fichier de commande que j’essaie d’exécuter:

@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" 

Voici le résultat de l'invite de commande:

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
Était-ce utile?

La solution

Je l'ai compris. Après avoir parcouru des pages de résultats de recherche Google afin de trouver un moyen de faire en sorte que mon serveur de génération automatique traite cela, j’ai examiné les chemins du programme de commandes et constaté qu’il était différent du chemin d’installation.

@SET BDS=C:\RS\

aurait dû être

@SET BDS=C:\RS\6.0\

Leçon à apprendre: MSBUILD peut renvoyer l'erreur MSB4057 lorsqu'il ne parvient pas à résoudre le chemin BDS.

Remarque: Si ce correctif simple ne fonctionne pas, assurez-vous que les instructions de traçage sont correctes dans vos fichiers de projet. Voir cet article dans msdn

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top