2012-10-26 40 views
3

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

,所以我做这样的事情......

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" 

,但我得到了以下的(顺便说一句错误消息的网址不存在)

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. 

怎么看用户SqlCmd变量与MSDeploy中的DbDacFx提供程序?

感谢

回答

0

一个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" 
+2

我想你的建议,但我得到以下错误代码:ERROR_EXECUTING_METHOD 更多信息:无法部署包。 缺少以下SqlCmd变量的值:用户名。 了解更多:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_EXECUTING_M ETHOD。 错误:无法部署软件包。 错误:缺少以下SqlCmd变量的值:用户名。 错误计数:1. –

+1

我目前有尝试上述修正后同样的问题...你能找到一个解决? – misterManager

1

我会证明我得到同样的错误。 Ahmed Elsayed的文章http://www.iis.net/learn/publish/using-web-deploy/dbdacfx-provider-for-incremental-database-publishing除了有令人震惊的拼写错误之外,也没有解决sqlcmd变量。我个人无法找到像通常预期的那样的“真实”参考,例如dbSqlPackage。此外,我发现“-setParam:kind”和“-setParam:type”之间的不明原因的轶事和寓言变体。再次不文档对其进行备份,并且不具有实际的工作溶液,它确实出现的范围可以是文件名(正则表达式)。这就是说,我也看到了由作者在定义范围为提供商到一个指定的参数部分片段。理查德的东西在过去为我工作,所以我很乐意推进他的建议。