Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 数据库安装程序自更新到SQL Server 2016后未能创建DacStore对象_Sql Server_Powershell - Fatal编程技术网

Sql server 数据库安装程序自更新到SQL Server 2016后未能创建DacStore对象

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]:请验证包含此 类型已加载。

我有一个安装程序,可以创建或更新与网站关联的数据库。我们最初为MicrosoftServer2008R2和SQLServer2008编写了安装程序。我们已经更新到Microsoft Server 2016和SQL Server 2016,现在我发现
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)