2010-12-04 66 views
1

La seule façon dont je vois maintenant est de créer un fichier xml pour MSBuild contenant les invocations de tâches nécessaires, puis d'exécuter MSBuild directement en appelant l'action "Execute Program". Existe-t-il un moyen standard de le faire en utilisant FinalBuilder?Comment appeler des tâches MSBuild depuis FinalBuilder?

Répondre

2

Dans FinalBuilder 6, vous pouvez utiliser une tâche MSBuild. Cependant, pour être honnête dans notre script de construction, j'ai trouvé que l'utilisation d'un fichier batch et le 'Execute Program' était une meilleure solution.

Éditer: En faisant rapidement quelques lectures sur ce sujet, je me souviens maintenant pourquoi j'ai utilisé un fichier batch. L'action FB6 MSBuild est un peu paradoxale car toutes les propriétés ne sont pas accessibles depuis la vue par défaut et vous devez passer à la «grille de propriétés».

Mise à jour: De votre commentaire; Si vous souhaitez exécuter une tâche MSBuild individuelle et ne pas utiliser l'action "Exécuter le programme", vous devrez créer votre propre action FB. Je n'ai jamais créé une action personnalisée moi-même mais apparemment ils sont vraiment simples.

C'est le fichier batch que je:

@ECHO off 
SET Action=%1 
SET Configuration=%2 
SET Platform=x86 
SET CommonTools=%VS90COMNTOOLS% 
SET SourceDir=%CD%\..\.. 
SET SolutionFilename=Solution.sln 
SET MSBuild=C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe 

IF "%Action%" == "" SET Action=Rebuild 
IF "%Configuration%" == "" SET Configuration=Release 

:BUILD 
%MSBuild% "%SourceDir%\%SolutionFilename%" /v:m /t:%Action% /p:Configuration=%Configuration% /p:DenEnvDir="%CommonTools%..\IDE\" /p:SolutionDir="%SourceDir%" /p:Platform=%Platform% 

:END 
ECHO. 
ECHO ErrorLevel: %ERRORLEVEL% 
EXIT /B %ERRORLEVEL% 
+0

FB n'a pas de tâche MSBuild. Il a l'action "Projet MSBuild" en utilisant cela ressemble à une solution de contournement. Btw, pourquoi pensez-vous que la grille de propriété est moins intuitive qu'un script séparé? – Restuta

+0

Ahh, désolé, je n'ai pas FB installé pour le moment. Ça devait être un 'projet MSBuild' auquel je pensais. Le commentaire sur la grille de propriétés était spécifique aux actions d'édition dans FB; en particulier avec le projet MSBuild. J'utilise fréquemment les grilles de propriétés dans les logiciels que je développe car j'ai besoin de présenter beaucoup de données dynamiques aux utilisateurs. – Dennis

+0

Merci l'homme, semble que c'est la seule bonne façon. – Restuta

0

Vous ne pouvez pas exécuter seulement une tâche msbuild à partir d'une autre application sans instancier l'environnement msbuild dont elle dépend. Vous aurez besoin d'un fichier de projet msbuild à tout le moins.

+0

Je ne sais pas, mais ma question était: y at-il une fonctionnalité intégrée dans FinalBuilder pour faire cela pour moi. Par exemple. ils ont l'action "Run MSBuild project", pourquoi il n'y a pas d'action "Run MSBuild task"? – Restuta