2010-08-09 6 views
2

Je dois pouvoir créer une application ClickOnce dans TFS 2010. Elle doit définir ApplicationVersion et MinimumApplicationVersion. En TFS 2008, j'ai réussi à faire ce qui suit ...TFS 2010 - création de l'application ClickOnce

<MSBuild Projects="e:\MyAppBuilds\test\trunk\src\MyApp.Automation.Workflow.UI\MyApp.Automation.Workflow.UI.csproj" 
     Properties=" PublishDir=\\MyServer\shared\MyCompany\Testing\MyApp\; 
         ApplicationVersion=$(Major).$(Minor).$(Build).$(Revision); 
         Configuration=$(Configuration); 
         Platform=$(Platform); 
         Install=true; 
         MinimumRequiredVersion=$(Major).$(Minor).$(Build).$(Revision)" 
     Targets="PublishOnly" 
     ContinueOnError="true" ToolsVersion="4.0"/> 

Cependant, je ne peux pas sembler obtenir l'activité MSBuild pour publier l'application correctement en essayant de reproduire la tâche ci-dessus dans l'activité. Les paramètres que j'ai sont les suivants.

CommandLineActivities =String.Format("/property:PublishDir=""{0}"" /property:Install=""true"" /property:Configuration=""{1}"" /property:Platform=""{2}"" /property:ApplicationVersion=""{3}"" /property:MinimumRequiredVersion=""{3}"" ", BuildDetail.DropLocationRoot, platformConfiguration.Configuration, platformConfiguration.Platform, VersionNumber)

projetlocalProject

CiblesNew String() {"Publish"}

Quelqu'un at-il eu du succès à faire cela?

+0

Je certianly être intéressé par celui-ci. Aurez-vous besoin d'une activité personnalisée, ou simplement d'une configuration MSBuild supplémentaire? –

Répondre

0

Je pense que votre meilleur pari serait de faire un fichier .proj personnalisé (msbuild) que vous remettez pour contenir l'appel que vous avez déjà. TFS peut ensuite générer le fichier .proj personnalisé.

2

J'ai un modèle de processus de construction personnalisé que je branche à partir du modèle de processus par défaut. J'ajoute ensuite une section après que la construction soit réussie pour agir sur un nouvel argument entrant qui est un tableau de chaînes. Ce sont les projets que je veux déployer. Puis, j'utilise l'activité MSBuild comme le suggère MrHinsh pour cibler la cible Publish. Vous pouvez utiliser CommandLineArguments pour personnaliser les informations de version comme nous le faisons. Voici un extrait rapide de ce que j'utilise pour la version de l'application du programme d'installation ClickOnce:

String.Format("/p:SkipInvalidConfigurations=true;ApplicationVersion={1} {0}", 
       PublishArguments, 
       BuildVersion) 
+0

J'ai essayé plusieurs choses et, fondamentalement, c'est maintenant où je suis. Je peux utiliser l'activité et les arguments MSBuild cependant, le fichier d'application créé me donne l'erreur suivante quand j'essaye de le charger. "La référence dans le déploiement ne correspond pas à l'identité définie dans le manifeste d'application." –

+0

Êtes-vous capable de publier avec succès manuellement, à partir de VS avec les mêmes informations? Ma première estimation serait la version qui a un impact sur les informations de confiance spécifiées. Je ne suis pas un gourou clickonce, mais le nom, la version, la culture et le jeton de clé publique sont tous utilisés comme identifiants de confiance. –

+0

Vérifiez cette publication: http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/43353f07-307f-4f4f-b1d2-526c83b2681a/ –