J'ai un fichier de configuration qui doit être modifié serveur par serveur, de sorte qu'une fois qu'un logiciel est installé sur le serveur, le fichier de configuration d'un programme d'installation client est configuré pour correspondre au serveur paramètres, puis copiés dans un dossier public sur le Web pour le déploiement. Depuis que je change le fichier de configuration, je dois aussi reconstruire les fichiers * .manifest et * .application, et si je comprends bien, ma seule vraie option pour cela est d'utiliser Mage.exe à partir du SDK Win7. . Pour corriger le fichier * .manifest avec le hachage approprié à partir du fichier de configuration modifié, je lance:Problèmes de déploiement Mage.exe
mage -nouvelle application -fd -ToFile "\ Application Files" \ Application Files \ < appName> _1_0_0_0" .. \ _1_0_0_0 \ < appName> exe.manifest » -Name "< appName>" -Version "1.0.0.0" -CertFile "key.pfx" -password "< mot de passe>"
puis, pour fixer le * .application fichier avec le hachage approprié du fichier * .manifest modifié, je cours:
mage -new Déploiement -I t -t "< appName> .application" -v "1.0.0.0" -appManifest ". \ Fichiers d'application \ < appName> _1_0_0_0 \ < appName> .exe.manifest "-pu" http: // < adresse_hôte>/< path>/Fichiers d'application/< appName> _1_0_0_0/< appName> .exe.manifest "-CertFile" key.pfx "-password" "
Maintenant, tout cela fonctionne, et je reçois le message que les fichiers ont été signés avec succès. Lorsque je tente d'installer l'application cliente cependant, il est évident que quelque chose a mal tourné quand je reçois un journal d'erreur avec le message:
+ Deployment manifest is not semantically valid.
+ Deployment manifest requires <deployment> section.
En regardant le fichier * .Application, il contient des informations supplémentaires sous la noeud « de déploiement », que le même fichier directement à partir de la fonction de publication de VS2008 n'a pas:
<deployment install="true">
<subscription>
<update>
<expiration maximumAge="0" unit="days" />
</update>
</subscription>
<deploymentProvider codebase="http://<hostaddress>/<path>/Application Files/<appName>_1_0_0_0/<appName>.exe.manifest" />
</deployment>
le VS2008 publier version dispose simplement:
<deployment install="true" />
Lorsque Je supprime les informations supplémentaires et définit le nœud de déploiement sur un nœud à terminaison automatique, puis re-signe le fichier, tout fonctionne comme prévu.
Est-ce un problème connu et existe-t-il un moyen de faire en sorte que Mage crée le fichier sans les informations supplémentaires dans le noeud de déploiement afin qu'il fonctionne correctement?
EDIT: En tant que solution temporaire, je charge les fichiers dans un XmlDocument et les modifie pour les adapter, puis les signer à nouveau. En outre, je suis maintenant confronté au problème d'être encore incapable de déterminer comment ajouter une icône au déploiement, de sorte que l'élément de menu Démarrer obtient une icône autre que l'icône générique.
J'ai un cas d'utilisation très similaire à des problèmes similaires. Je répondrai si je trouve une solution. –
il suffit d'utiliser le drapeau -appc sur mage –
Nathan, consultez ma réponse et voir si cela vous aide. L'utilisation de Mage.exe devrait fonctionner correctement pour vous. –