经过一周的苦苦挣扎,我刚在IIS7上启动了msdeploy处理程序(处理了其后备文档)。知道我有一个简单的同步“正在工作”,但我想在 list 中移动尽可能多的-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路径的 list 的示例,但是它们通常将其他位移动到用于(我正在猜测)用户输入的参数文件中。有没有像这样简单的东西:
<!-- 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>

最佳答案

情况不完全相同,但可能会给您一些想法。
这就是我们尝试使用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>

现在,我们准备使用 list 创建一个包:
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"

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

关于manifest - 如何创建包含目标属性(如用户名和密码)的msdeploy list ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1868653/

10-12 02:53