WebDeploy parameters support for modifying the “additional provider settings” during deployment time
This is a follow-up to a question I posted on stackoverflow @ http://stackoverflow.com/questions/15145963/using-msdeploy-parameters-to-set-the-additional-provider-settings-in-a-web-dep
It is not possible in Web Deploy 3.0 to use parameters to manipulate the "additional provider settings" during deployment time. I have a use case to modify the settings for the dbDacFx provider based on environment, such as "DropObjectsNotInSource" and "BlockOnPossibleDataLoss"
This is not possible today, likely because the options are stored in a binary format in the attribute "MSDeploy.MSDeployProviderOptions" for the provider in the archive.xml file of the web deploy package. (This binary format appears to be a serialized instance of the Microsoft.Web.Deployment.DeploymentProviderOptions type, which is next to impossible to work with from XPath.)
A much easier way would be to just give each custom provider setting a bona fide attribute or element in the provider's XML element in archive.xml, just like the manifest file. This might enable a way to use an msdeploy setParam option of kind DeploymentObjectAttribute to modify the provider setting at deploy time. You would just need to customize the serialization logic for the Microsoft.Web.Deployment.DeploymentProviderOptions type.