更新:请参阅下面的微软官方回复。我想有一个非官方的黑客来完成这个,所以我把这个问题留了下来。
更新 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 部署支持
嗨史蒂夫,
抱歉,目前不支持此功能。
谢谢, 兰吉斯