使用MSDeploy参数在Web Deploy包中设置“其他提供程序设置”

时间:2013-02-28 21:26:32

标签: msdeploy webdeploy dac

更新:请参阅下面的微软官方回复。我想有一个非官方的黑客来完成这个,所以我要离开这个问题了。

更新2:投票my WebDeploy feature request to Microsoft on this issue

我在我的商店大量使用MSDeploy,并花了数小时尝试定义一个msdeploy参数,该参数将在部署时修改部署提供程序的“其他提供程序设置”。在网上搜索并在Web部署二进制文件上使用Reflector时,我对此表示空洞。

具体来说,我正在尝试允许命令行选项来操作dbDacFx提供程序的DacDeployOptions的“DropObjectsNotInSource”和“BlockWhenDriftDetected”设置。

我已经尝试过每一个我能想到的XPath表达式来修改manifest.xml文件中的DACFx选项:

<sitemanifest>
  <dbDacFx path="C:\Database.dacpac" 
           DropObjectsNotInSource="False"
           BlockOnPossibleDataLoss="True" /> 
</sitemanifest>

使用类型setParam的msdeploy DeploymentObjectAttribute始终无法在//@DropObjectsNotInSource上找到任何匹配的节点。

我怀疑它失败了,因为DropObjectsNotInSource的值实际上存储在包的archive.xml文件中的提供者节点的属性“MSDeploy.MSDeployProviderOptions”中。 (此属性值似乎是Microsoft.Web.Deployment.DeploymentProviderOptions的.Net序列化实例,因此使用普通的旧XPath操作它将非常困难。)

是否可以在部署时修改这些其他提供商设置?


更新:我通过他们的博客向Microsoft Web Deploy团队发送了一封电子邮件,并在此处发布。 Web Deploy团队在回复我的过程中非常棒(感谢Harsh和Ranjith!)。不幸的是,官方的说法是不支持。

  

来自:Ranjith Mukkai Ramachandra ... @ microsoft.com

     

主题:RE:MSDeploy setParam可以修改“其他提供商设置”吗?

     

日期:2013年2月15日美国东部时间下午5:20:46

     

收件人:Web部署支持

     

嗨,史蒂夫,

     

抱歉,目前不支持此功能。

     

谢谢,   兰芝斯

0 个答案:

没有答案