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