如何创建包含用户名和密码等目标属性的msdeploy清单?

时间:2009-12-08 17:46:52

标签: manifest msdeploy

经过一周的挣扎,我刚刚在IIS7上获得了msdeploy处理程序(诅咒其后备文档)。所以知道我有一个简单的同步“工作”,但我想在清单中移动尽可能多的-sync参数,而不是将其隐藏在我的MSBUILD任务中。这是部署命令行:

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

我找到了很多包含iisApp路径的清单示例,但它们通常会将其他位移动到参数文件中(我猜)用户输入。有这样简单的事情:

<!-- 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>

1 个答案:

答案 0 :(得分:7)

不完全相同的情况但可能会提供一些想法 这就是我们尝试使用msdeploy更新数据库的方法 首先我们创建了一个manifest.xml,告诉msdeploy dbFullSql提供程序在哪里查找我们的sql脚本:

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

然后你需要parameter.xml来指定数据库连接字符串:

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

现在我们准备用我们的清单创建一个包:

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

最后部署它:

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

因此,您可以了解如何将参数保存在单独的文件中。 魔法!