Utilizzo Web Deploy per il pacchetto e la distribuzione di siti Web per il mio prodotto. In particolare, ho due diversi progetti nella mia soluzione. Uso questo metodo per la distribuzione.Utilizzo di MsBuild per generare manifest MsDeploy personalizzato (destinazione pacchetto)
Ho un terzo progetto nella soluzione (un servizio Windows) che deve anche essere installato sul server web.
So che posso scrivere un manifest personalizzato (per i provider dirPath
, filePath
e runCommand
) e chiamare direttamente MsDeploy per distribuirlo. Ma mi piacerebbe sfruttare le attività esistenti di MsBuild per pacchettizzare il mio servizio, se possibile.
vedo che è possibile fare un po 'di personalizzazione del file manifesto tramite obiettivi MSBuild:
http://social.msdn.microsoft.com/Forums/en/msbuild/thread/1044058c-f762-456b-8a68-b0863027ce47
In particolare utilizzando la voce di MsDeploySourceManifest
.
Dopo frugando tra le file .targets appropriati, sembra che sia contentPath
o iisApp
otterrà aggiunto alla mia manifesta se uso il bersaglio Package
. Idealmente mi piacerebbe solo copiare un assembly (o directory), eventualmente impostare ACL ed eseguire installutil.exe sul servizio.
È possibile personalizzare completamente il manifest generato dal target , modificando il file csproj?
In caso contrario, c'è un modo semplice per creare un nuovo target che faccia l'equivalente a Package
, ma permettimi di sputare un manifest completamente personalizzato?
Hai ricevuto una risposta? – musica
@Graci: l'ho fatto. Sto finendo l'oggetto di lavoro per questo durante questa settimana, e posterò una risposta dopo che tutto funzionerà. I concetti chiave sono la creazione di un file '.targets' personalizzato, utilizzare i target personalizzati per aggiungere le voci del provider' runCommand' per eseguire file batch personalizzati (per arrestare/disinstallare il servizio e installarlo/avviarlo), aggiungere Parametri personalizzati. file xml al progetto e imposta alcuni flag, come 'IncludeIisSettingsOnPublish = False' e' IncludeIisSettingsOnPublish = False'. Oh, e anche l'estensione di trasformazione non web di SlowCheetah è stata di aiuto. –
@Merlyn: Sarebbe fantastico se tu trovassi il tempo di condividere la tua soluzione, dal tuo ultimo commento sembra che tu abbia capito bene. –