2009-12-08 7 views
4

Après une semaine de difficultés, je viens d'obtenir le gestionnaire msdeploy sur IIS7 (maudissant la documentation back-ass de celui-ci). Donc, sachez que j'ai une simple synchronisation "fonctionnant" mais je voudrais déplacer autant de paramètres -sync dans un manifeste plutôt que de l'enterrer dans ma tâche MSBUILD. Voici la ligne de commande deploy:Comment créer un manifeste msdeploy incluant des propriétés de destination telles que le nom d'utilisateur et le mot de passe?

msdeploy.exe -verb:sync 
    -source:package="D:\Projects\Packaged.zip" 
    -dest:iisApp="beta.mysite.com", 
     wmsvc=ops.mysite.com, 
     username=deployUser, 
     password=secret, 
     skipAppCreation=true 
    -allowUntrusted=true 

J'ai trouvé beaucoup d'exemples de manifestes qui contiennent le chemin iisapp, mais ils se déplacent habituellement les autres bits à un fichier de paramètres pour (je suppose) d'entrée de l'utilisateur. Y at-il quelque chose de simple comme ceci:

<!-- Pseudo-code manifest --> 
<msdeploy.iisApp> 
    <iisApp path="beta.mysite.com"> 
    <param key="wmsvc" value="ops.mysite.com"/> 
    <param key="SkipAppCreation" value="true"/> 
    <param key="username" value="deployUser"/> 
    <param key="password" value="secret"/> 
    </iisApp> 
</msdeploy.iisApp> 

Répondre

5

Pas exactement le même scénario, mais pourrait donner une idée.
C'est ce que nous avons fait en essayant de mettre à jour notre base de données avec msdeploy.
Tout d'abord, nous avons créé un manifest.xml où nous disons msdeploy fournisseur de dbFullSql où chercher nos scripts SQL:

<sitemanifest> 
    <dbfullsql path="test1.sql"/> 
    <dbfullsql path="test2.sql"/> 
    <dbfullsql path="test3.sql"/> 
</sitemanifest> 

Ensuite, vous devez parameter.xml vous permet de spécifier la chaîne de connexion de base de données:

<parameters> 
    <parameter 
    name="ConnectionString" 
    value="Data Source=localhost;uid=user;password=pass;multipleactiveresultsets=false;Initial Catalog=Db_name"> 
    <parameterEntry type="ProviderPath" scope="dbFullSql"/> 
</parameter> 

maintenant, nous sommes prêts à créer un package avec notre manifeste:

msdeploy.exe -verb:sync -source:manifest="manifest.xml" -dest:package="package.zip" 

Et enfin déployer:

msdeploy.exe -verb:sync -source:package="package.zip" -dest:auto -setParamFile="parameter.xml" 

vous pouvez donc voir comment vous pouvez garder vos paramètres dans un fichier séparé. Magie!

Questions connexes