2009-05-27 9 views
3

Nous utilisons actuellement Visual Studio pour créer nos packages de déploiement ClickOnce, mais nous aimerions renommer "Fichiers d'application" car le serveur Web que nous utilisons fait ne supporte pas les espaces.Comment renommer automatiquement le dossier "Fichiers d'application" dans un déploiement ClickOnce

Nous avons constaté que si nous entrons dans le fichier .application directement, nous pouvons modifier le chemin qui est pointé vers, et nous pouvons également renommer le dossier manuellement.

Est-ce que quelqu'un connaît un moyen d'automatiser cela, que ce soit en utilisant MageUI ou tout autre utilitaire? Il est tentant de mettre en place un script de lot qui fait les changements pour nous. Le déploiement utilise également des fichiers non signés, car nous n'avons pas besoin de nous soucier d'un certificat (c'est seulement une application interne)

+0

Comment avez-vous travaillé? Lorsque j'ai renommé le dossier (il y a un bug avec App Engine et des espaces!), J'obtiens ces erreurs: + La signature XML du manifeste n'est pas valide. + La signature numérique de l'objet n'a pas été vérifiée. –

+0

Vous ne savez pas si vous utilisez App Engine (puisque vous avez mentionné les espaces non pris en charge), mais j'ai travaillé avec les espaces en utilisant URLEncoding l'adresse du gestionnaire: - url:/app/Application% 20Files static_dir: app/Fichiers d'application –

+0

Vous devez désactiver la génération de signature sur les fichiers manifestes. Vous avez raison d'utiliser AppEngine, et ajouter d'autres URL de gestionnaire semble fonctionner. http://code.google.com/p/googleappengine/issues/detail?id=2525 a plus de détails –

Répondre

2

Comme personne ne semble connaître la réponse à cette question, j'ai trouvé un moyen de le faire moi même. J'ai créé un script PowerShell. Notez que cela ne fonctionnera que sur les manifestes non signés.

gci -Recurse -include *.application | ForEach-Object { [System.IO.File]::WriteAllLines($_.FullName, [System.IO.File]::ReadAllText($_.FullName).Replace("Application Files", "ApplicationFiles")) } 
gci -recurse | Where {$_.psIsContainer -eq $true} | Where {$_.Name -eq "Application Files"} | ForEach-Object { $_.MoveTo($_.FullName.Replace("Application Files", "ApplicationFiles")) } 

Mon Powershell n'est pas étonnant donc il peut y avoir une meilleure façon de le faire, mais c'était ce que je suis venu avec

0

d'abord, essayez manuellement.

Publiez l'application dans un dossier (définissez l'emplacement de publication sur quelque chose comme C: \ publish et l'URL d'installation correctement, par exemple http://myserver/myapp/).

Ensuite, entrez et renommer les fichiers d'application en ApplicationFiles dans C: \ publish.

Accédez au dossier C: \ publication \ ApplicationFiles \ yourapp_a_b_c_d \ et supprimez votre applicationapplication. (Croyez-moi, si vous ne le faites pas, mageui va faire une erreur quand vous rajouterez les fichiers).

Exécutez MageUI (il se trouve dans c: \ program files \ microsoft sdks \ windows \ v7.0a \ bin ou v6.0a \ bin, selon la version de VS que vous utilisez).

Dans MageUI, cliquez sur Ouvrir, recherchez c: \ publish \ ApplicationFiles \ yourapp_a_b_c \ votreapp.exe.manifest et ouvrez-le (où a_b_c_d est votre version et votreapp est le nom de votre application).

Vous devriez voir le nom et d'autres choses. Cliquez sur Fichiers. Assurez-vous que "lors du remplissage ajouter l'extension de déploiement ..." est cochée, puis cliquez sur Remplir (bien que, à bien y penser, tous devraient avoir cette extension, à moins que vous ne l'ayez changé en VS). Cela ajoutera tous les fichiers du dossier au manifeste d'application/

Enregistrez et signez le manifeste d'application.

Puis cliquez à nouveau sur Ouvrir, ouvrez c: \ publish \ yourapp.application.

Cliquez sur "Application Reference". Sur la droite, cliquez sur Select Manifest. Accédez à celui que vous venez d'éditer (C: \ publish \ ApplicationFiles \ yourapp_a_b_c_d \ yourapp.exe.manifest). Cela met à jour le manifeste de déploiement afin qu'il puisse trouver la liste des fichiers dans le bon manifeste d'application. Enregistrez et signez le manifeste de déploiement (votreapplicationapplication). Copiez les dossiers sur le serveur Web, cela devrait fonctionner. Maintenant, si cela fonctionne pour vous, vous pouvez remplacer les trucs mageui par des commandes Mage, et probablement faire un simple script pour copier les fichiers dans le nouveau dossier ou renommer les "Fichiers Application" en "Fichiers Application".

Je peux fournir les commandes Mage pour vous si vous en avez besoin.

Questions connexes