繁体   English   中英

使用 Powershell 部署 SSIS - 缺少 DMF

Deploy SSIS with Powershell - Missing DMF

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试编写一个 PowerShell 脚本来部署和 SSIS 项目。 这是我的代码。

# Variables
$SSISNamespace = "Microsoft.SqlServer.Management.IntegrationServices"
$TargetServerName = "FBISQL003DV"
$TargetFolderName = "DEV"
$ProjectFilePath = "C:\Users\Brian.Ciampa\source\Workspaces\TFICM2\TFCIM\DEV\CIM\SSIS\BC_TEST\bin\Development\BC_TEST.ispac"
$ProjectName = "BC_TEST"

# Load the IntegrationServices assembly.  This is located at C:\windows\assembly.
$loadStatus = [System.Reflection.Assembly]::Load("Microsoft.SQLServer.Management.IntegrationServices, "+
    "Version=13.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL")

# Create a connection to the server
$sqlConnectionString = `
    "Data Source=" + $TargetServerName + ";Initial Catalog=master;Integrated Security=SSPI;"
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection $sqlConnectionString

# Create the Integration Services object
$integrationServices = New-Object $SSISNamespace".IntegrationServices" $sqlConnection

# Get the Integration Services catalog
$catalog = $integrationServices.Catalogs["SSISDB"]

# Create the target folder
$folder = New-Object $SSISNamespace".CatalogFolder" ($catalog, $TargetFolderName,
    "Folder description")
$folder.Create()

Write-Host "Deploying " $ProjectName " project ..."

# Read the project file and deploy it
[byte[]] $projectFile = [System.IO.File]::ReadAllBytes($ProjectFilePath)
$folder.DeployProject($ProjectName, $projectFile)

Write-Host "Done."

但是,我不断收到此消息:

New-Object : Could not load file or assembly 'Microsoft.SqlServer.Dmf.Common, Version=13.0.0.0, Culture=neutral, 
PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.
At C:\Users\Brian.Ciampa\desktop\SSIS_Deploy.ps1:20 char:24
+ ... nServices = New-Object $SSISNamespace".IntegrationServices" $sqlConne ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-Object], FileNotFoundException
    + FullyQualifiedErrorId : System.IO.FileNotFoundException,Microsoft.PowerShell.Commands.NewObjectCommand

Microsoft.SqlServer.Dmf.dll 和 Microsoft.SqlServer.Dmf.Common.dll 文件位于该文件夹中。 我需要做什么?

谢谢! 布赖恩

1 个回复

尝试使用 Add-Type 加载 dll,如下所示:

Add-Type -AssemblyName "Microsoft.SqlServer.Dmf.Common, Version=13.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"

它将在当前目录中检查 dll,除非它之前已经成功加载。

如果仍然找不到,则文件夹中的 Microsoft.SqlServer.Dmf.Common.dll 版本不是 IntegrationServices 程序集所需的 dll。

要检查当前文件夹中 dll 的签名,您可以运行:

([System.Reflection.Assembly]::LoadFile((Get-Item ".\Microsoft.SqlServer.Dmf.Common.dll").FullName)).FullName

帮助定位匹配 dll 的注释。

12.0 = SQL Server 2014
13.0 = SQL Server 2016
14.0 = SQL Server 2017

替代选项:

在下面的例子中,我将首先加载 IntegrationServices“版本 14.0.0...”,这样 dll 就不需要从文件中手动加载或添加到 GAC。

C:\>attrib /s gacutil.exe
A            C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\gacutil.exe
A            C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\gacutil.exe
A            C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64\gacutil.exe
A            C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\gacutil.exe
A            C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\gacutil.exe
A            C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\gacutil.exe

C:\>cd "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64"

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64>gacutil /l | find "IntegrationServices,"
  Microsoft.SqlServer.Management.IntegrationServices, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
  Microsoft.SqlServer.Management.IntegrationServices, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
  Microsoft.SqlServer.Management.IntegrationServices, Version=13.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
  Microsoft.SqlServer.Management.IntegrationServices, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64>gacutil /l | find "Dmf.Common,"
  Microsoft.SqlServer.Dmf.Common, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64>gacutil /l | find "Dmf,"
  Microsoft.SqlServer.Dmf, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
  Microsoft.SqlServer.Dmf, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64>
1 使用 PowerShell 部署 SSIS 包

我正在尝试通过 PowerShell 将 .ispac 文件部署到 SQL Server (2017)。 到目前为止,我已经下载了 SQL Server PowerShell 模块,当然也安装了 SSIS(版本 15.0.2000.93)。 我尝试运行的 PowerShell 脚本与文档中的脚本几 ...

2 SSIS - 包部署模型部署到 MSDB

我正在使用 SQL 2016 并且正在创建 SSIS 包。 由于环境的原因,SSIS 包必须使用包部署模型而不是项目部署模型。 将不会安装集成服务目录。 此链接表示使用旧包部署模型,SSIS 包可能存储在 MSDB 中。 https://docs.microsoft.com/en-us/sql ...

3 使用PowerShell的SSIS目录和项目部署

我正在尝试使用power-shell创建一个ssis目录 我收到一个奇怪的错误。 这是我正在运行的代码:我从msdn中获取了代码 这是我得到的错误: 有没有人遇到过这个问题? 我是否缺少文件? 我尝试了此修复程序:修复失败 ,并且没有用。 我的PowerShel ...

5 SSIS-使用其他VS版本部署程序包后,程序包执行失败

我试图使用Microsoft SQL Server集成服务设计器版本14.0.800.90部署程序包,但是当我尝试通过集成服务目录执行程序包时,出现以下错误: 目标服务器的SQL Server版本是这样的:13.0.5149.0-SQL Server 2016 SP2 CU1,服务器 ...

2018-10-29 09:14:13 2 49   ssis
6 SSIS - 如何使用包部署模型从子包设置父变量值

我正在尝试将子变量值传递给父级,但无法使其正常工作。 我使用的是包部署模型而不是项目部署模型。 Parent 和 Child 中的变量具有完全相同的名称。 我使用包配置引用了子包中的父变量。 然后我在子脚本任务中设置值: 值设置正确(从 0 到 1): 但是回到父级,该值仍然为 0( ...

2020-05-07 08:57:58 1 394   ssis
7 SSIS - 如何使用 SQL 任务的结果进行循环

我正在尝试将大量数据从 SQL Server 数据库加载到 Azure 数据库加载发生在超时的 VPN 上。 所以我想小批量加载,当加载失败时我可以在某个时间点重新启动。 如何使用以下 SQL 使用 SSIS 一次加载数据 1 个月 ...

8 SSIS - 使用OLE DB命令更新表

我需要翻译SSIS中的下一个SQL查询:(每个表属于不同的源 - SQL Server和ORACLE) 如您所见,源和目标对应于相同的源:表A.这是我创建的工作流程。 在条件分割之后我使用派生列来复制列B.Col1以在OLE DB命令上使用它来更新表A的列之后,我在OLE DB命 ...

9 SSIS-如何使用回滚创建事务

我要使事务包括所有Container ,如果失败,它将回滚 。 当我打开Container字段时: transactionoption到“ Required ”时,我将无法运行PACKAGE。 可能是什么问题呢? 这是为Container进行交易的方法吗? ...

10 SSIS-使用顶部处理批次

我正在对数百万行的数据进行模糊映射(来自表A)。 我一次花费10000,处理它们并将映射的行存储在另一个表中。 (表B) 然后,当我选择下一个批次时,请确保不选择表B中现在存在的表A中的ID进行处理。 一切正常。 现在如何使流程循环进行而又不必在每次迭代后都停止启动? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM