Comment puis-je créer un manifeste msdeploy qui comprend des propriétés de destination comme nom d'utilisateur et mot de passe?
Question
Après une semaine de lutte, je viens de recevoir le gestionnaire de msdeploy sur IIS7 (maudissant la documentation en arrière-cul de celui-ci). Donc sais que j'ai une synchronisation simple « travail » mais je voudrais passer autant des paramètres -SYNC dans un manifeste plutôt que de l'enfouir dans ma tâche MSBUILD. Voici la ligne de commande deploy:
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
Je l'ai trouvé beaucoup d'exemples qui contiennent des manifestes le chemin iisapp, mais ils se déplacent habituellement les autres bits à un fichier de paramètres pour (je suppose) entrée 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>
La solution
Pas exactement le même scénario, mais pourrait donner une idée.
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"
Ainsi, vous pouvez voir comment vous pouvez conserver vos paramètres dans un fichier séparé. La magie!