【问题标题】:using SqlCmd variables with dbDacFx provider of MsDeploy将 SqlCmd 变量与 MsDeploy 的 dbDacFx 提供程序一起使用
【发布时间】:2012-10-26 19:21:11
【问题描述】:

我正在尝试使用 msdeploy 和 dbDacFx 提供程序来部署我的 dacpac 文件。此数据库项目使用名为 UserName 的变量来创建登录名和用户等。需要在部署期间传递此值。

所以我正在做类似...

msdeploy.exe -verb:Sync -Source:dbDacFx="c:\dev\pmwuiservices\trunk\Build\database\Database.dacpac"-dest:dbDacFx="Data Source=localhost;Integrated Security=True;Database=UIConfig", -setParam:Kind=SqlCommandVariable,scope=dbDacFx,match=UserName,value="IIS AppPool\ASP.NET V4.0"

但我得到以下信息(顺便说一下,错误消息中的 url 不存在)

Info: Adding MSDeploy.dbDacFx (MSDeploy.dbDacFx).
Info: Adding database (data source=localhost;integrated security=True;database=U
IConfig)
Info: Creating deployment plan: Pending.
Info: Verifying deployment plan: Pending.
Info: Deploying package to database: Pending.
Info: Creating deployment plan: Running.
Info: Initializing deployment (Start)
Info: Initializing deployment (Failed)
Info: Creating deployment plan: Faulted.
Info: Verifying deployment plan: Faulted.
Info: Deploying package to database: Faulted.
Error Code: ERROR_EXECUTING_METHOD
More Information: Could not deploy package.
Missing values for the following SqlCmd variables:UserName.
  Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_EXECUTING_M
ETHOD.
Error: Could not deploy package.
Error: Missing values for the following SqlCmd variables:UserName.
Error count: 1.

如何在 MSDeploy 中使用 DbDacFx 提供程序的一个用户 SqlCmd 变量?

谢谢

【问题讨论】:

    标签: .net sql-server-2008-r2 msdeploy webdeploy


    【解决方案1】:

    我会确认我得到了同样的错误。 Ahmed Elsayed 的文章 http://www.iis.net/learn/publish/using-web-deploy/dbdacfx-provider-for-incremental-database-publishing 除了有严重的拼写错误外,也没有解决 sqlcmd 变量。我个人找不到像人们通常期望的那样的“真实”参考,例如dbSqlPackage 的参考。此外,我发现“-setParam:kind”和“-setParam:type”之间存在无法解释的轶事和寓言式的变化。再次没有文档来支持它并且没有实际的工作解决方案,看起来范围可以是 filename (正则表达式)。也就是说,我还看到了部分 sn-ps,作者将范围定义为分配参数的 provider。理查德的东西过去对我有用,所以我很乐意接受他的建议。

    【讨论】:

      【解决方案2】:

      SqlCommandVariable 参数的scope 应该是您应用它的文件名,而不是提供者:

      msdeploy.exe -verb:sync ^
          -Source:dbDacFx="c:\dev\pmwuiservices\trunk\Build\database\Database.dacpac"
          -dest:dbDacFx="Data Source=localhost;Integrated Security=True;Database=UIConfig" 
          -setParam:kind=SqlCommandVariable,scope=Database.dacpac$,match=UserName,value="IIS AppPool\ASP.NET V4.0"
      

      【讨论】:

      • 我尝试了您的建议,但收到以下错误代码:ERROR_EXECUTING_METHOD 更多信息:无法部署包。以下 SqlCmd 变量缺少值:用户名。了解更多信息:go.microsoft.com/fwlink/?LinkId=221672#ERROR_EXECUTING_METHOD。错误:无法部署包。错误:以下 SqlCmd 变量缺少值:用户名。错误计数:1。
      • 我目前在尝试上述修复后遇到同样的问题...您找到解决方案了吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 2016-06-30
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多