Search code examples
.netmsbuildmsdeploywebdeploy

dbSqlPackage provider not found


I am trying to use web processing pipeline with msbuild to deploy database dacpac using web deploy. I have following code in my project's .wpp.targets file.

<Target Name ="DeployUIConfigDatabase" AfterTargets="AddIisSettingAndFileContentsToSourceManifest" >
    <ItemGroup>
      <MsDeploySourceManifest Include="dbSqlPackage">
        <Source>$(_MSDeployDirPath_FullPath)\Database\Advent.PMW.UIConfig.Database.dacpac</Source>
        <Destination>{UIConfigContext-Web.config Connection String</Destination>
        <Action>Publish</Action>
        <AdditionalProviderSettings>Source;Destination;Action</AdditionalProviderSettings>
      </MsDeploySourceManifest>
    </ItemGroup>
  </Target>

but when I try to build the package i get the following error

Error : Web deployment task failed. (Could not find the provider 'dbSqlPackage'. Please verify that you've entered the provider name correctly.) Package failed.

I tried using dbSqlPackage provider from command line but i get the same error. I have MSDeploy 3.0 installed on a windows 7 box. I can see that

Microsoft Web Deploy dbSqlPackage Provider - enu

is installed on my box.I tried removing it ( as suggested in another post on this subject) but no luck


Solution

  • The dacpac provider in MSDeploy v3 is dbDacFx. Also, your Source attribute should be Path, which doesn't require inclusion in AdditionalProviderSettings.

    Btw, if you're using VS2012 (or 2010 with the latest Azure SDK) you should be able to include the dacpac using the publish dialog.