4

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

更新 2:就这个问题向 Microsoft 投票支持我的 WebDeploy 功能请求

我在我的商店大量使用 MSDeploy,并且花了几个小时试图定义一个 msdeploy 参数,该参数将在部署时修改部署提供程序的“附加提供程序设置”。在网上搜索和使用 Reflector on the Web Deploy 二进制文件时,我对此一无所知。

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

我已经尝试了所有我能想到的 XPath 表达式,以从 manifest.xml 文件中修改 DACFx 选项,如下所示:

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

将 msdeploysetParam与 kind 一起使用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

主题:回复:MSDeploy setParam 可以修改“其他提供程序设置”吗?

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

收件人:Web 部署支持

嗨史蒂夫,

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

谢谢, 兰吉斯

4

0 回答 0