5

经过一周的挣扎后,我刚刚在 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>
4

1 回答 1

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"

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

于 2010-03-01T13:51:59.883 回答