Sql server 数据库安装程序自更新到SQL Server 2016后未能创建DacStore对象
我有一个安装程序,可以创建或更新与网站关联的数据库。我们最初为MicrosoftServer2008R2和SQLServer2008编写了安装程序。我们已经更新到Microsoft Server 2016和SQL Server 2016,现在我发现Sql server 数据库安装程序自更新到SQL Server 2016后未能创建DacStore对象,sql-server,powershell,Sql Server,Powershell,我有一个安装程序,可以创建或更新与网站关联的数据库。我们最初为MicrosoftServer2008R2和SQLServer2008编写了安装程序。我们已经更新到Microsoft Server 2016和SQL Server 2016,现在我发现dacpac出现故障 我已经在系统上更新了DAC框架,但问题仍然存在。失败的特定部分在PowerShell脚本中 新对象:找不到类型[Microsoft.SqlServer.Management.Dac.DacStore]:请验证包含此 类型已加载。
dacpac
出现故障
我已经在系统上更新了DAC框架,但问题仍然存在。失败的特定部分在PowerShell脚本中
新对象:找不到类型[Microsoft.SqlServer.Management.Dac.DacStore]:请验证包含此
类型已加载。
在C:\Users\Administrator\AppData\Local\Temp\2\u ir\u sf\u Temp\u 3\UnregisterDataTier.ps1:29 char:13
+$dacstore=新对象Microsoft.SqlServer.Management.Dac.dacstore($s。。。
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CategoryInfo:InvalidType:(:)[New Object],pArgumentException
+FullyQualifiedErrorId:TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand
代码部分(第29行为最后一行):
我一直在尝试我能找到的一切,而其他人却收到了相同的错误消息,但这似乎不适用于我的情况。我假设某个地方有一些我无法定位的小变化
这在2008年非常有效,但我找不到导致此错误的可能已更改的内容。Hmm您是否直接在SQL 2016 server(或仅在具有2016工具集的计算机上)上运行此操作。据此,DAC库从SQL 2012开始就被弃用。您至少应该能够使用SMO库或其他.NET库来创建连接字符串。但是,您可能需要为某些命令重构脚本。看起来DacStore类已被删除,并且没有真正的替换对象谢谢你的链接,这需要很多的挖掘工作!
If (!$uid -And !$pwd)
{
$serverconnection.ConnectionString = "Server = $server; Database = $database ; Integrated Security = True;"
}
Else
{
$serverconnection.ConnectionString = "Server = $server; Database = $database ; Integrated Security = False; User ID = $uid; Password = $pwd;"
}
$dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)