Ho un file di configurazione che deve essere modificato in base al server, in modo che una volta installato il nostro software su un server, il file di configurazione per un programma di installazione del client sia configurato per corrispondere a quello specifico server impostazioni e quindi copiato in una cartella pubblica sul Web per la distribuzione.Problemi di distribuzione di Mage.exe
Dal momento che sto modificando il file di configurazione, devo anche ricostruire il * manifest ei file * .application, e se ho capito bene, la mia unica vera opzione per questo è di usare Mage.exe dal Win7 SDK . Al fine di correggere il file * manifest con il corretto hash dal file di configurazione modificato, corro:
mago -FD -nuova Application -ToFile "\ Application Files" \ Application Files \ < appName> _1_0_0_0" .. \ _1_0_0_0 \ < appName> exe.manifest" -Name "< appName> 1.0.0.0" versione "" -CertFile "key.pfx" -password "< password>"
e poi, per risolvere il * file di applicazione con l'hash corretto dal file * .manifest modificato, eseguo:
mage -new Deployment -I t -t "< appName> .application" -v "1.0.0.0" -appManifest ". \ File dell'applicazione \ < appName> _1_0_0_0 \ < appName> exe.manifest "-pu "http: // < hostaddress>/< percorso>/Application Files/< appName> _1_0_0_0/< appName> exe.manifest key.pfx" -CertFile" "-password" "
Ora, tutto funziona e ricevo il messaggio che i file sono stati firmati correttamente. Quando provo ad installare l'applicazione client, però, è evidente che qualcosa è andato storto quando ottengo un log degli errori con il messaggio:
+ Deployment manifest is not semantically valid.
+ Deployment manifest requires <deployment> section.
Nel guardare il file * .application, ha alcune informazioni aggiuntive sotto il nodo "distribuzione", che lo stesso file direttamente dalla funzione di pubblicazione di VS2008 non ha:
<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>
il VS2008 pubblicare versione ha semplicemente:
<deployment install="true" />
Quando Rimuovere le informazioni aggiuntive e impostare il nodo di distribuzione su un nodo auto terminante, quindi firmare di nuovo il file, tutto funziona come previsto.
Si tratta di un problema noto e c'è un modo per ottenere che Mage crei il file senza le informazioni aggiuntive nel nodo di distribuzione in modo che funzioni correttamente?
MODIFICA: Come soluzione temporanea, sto caricando i file in un XmlDocument e li ho modificati per adattarli, quindi firmare nuovamente i file. Inoltre, ora sto affrontando il problema di non essere ancora in grado di determinare come aggiungere un'icona alla distribuzione, quindi l'elemento del menu Start ottiene un'icona diversa dall'icona generica.
Ho un caso d'uso molto simile con problemi simili. Risponderò se trovo una soluzione. –
basta usare il flag -appc sul mago –
Nathan, controlla la mia risposta e vedi se ti aiuta. Utilizzando Mage.exe dovrebbe funzionare bene per te. –