【问题标题】:How to create a SSIS 2012 Project using EzAPI?如何使用 EzAPI 创建 SSIS 2012 项目?
【发布时间】:2013-02-15 11:27:24
【问题描述】:

我正在尝试使用 EzAPI 创建一个 SSIS 2012 项目。但是,在将项目文件保存到磁盘后,我无法在 Visual Studio 中打开它。

我用来创建一个包含一个包的简单项目的代码如下:

EzProject MyProject = new EzProject();
EzPackage MyPackage = new EzPackage();
MyPackage.Name = "MyPackage";

MyProject.AddPackage(MyPackage);

MyPackage.SaveToFile("C:/Temp/MyPackage.dtsx");
MyProject.SaveAs("C:/Temp/MyProject.dtproj");

正如预期的那样,我的 C:/Temp 文件夹包含包和 .dtproj 文件。但是我无法在 Visual Studio 中打开 dtproj 文件。我尝试时收到的错误是:“HRESULT x80041FEB 的异常”

此外,当我在记事本中打开 .dtproj 文件时,它不像 .dtproj 文件那样包含 XML。它包含一些带有许多特殊字符的乱码(例如:eQMs‚0¼wÆÿÀä$|)

我正在使用最新版本的 EzAPI,可在此处下载:http://sqlsrvintegrationsrv.codeplex.com/releases/view/82369

我做错了什么?

【问题讨论】:

  • 我同意你的发现。我注意到将 SSDT 生成的 .dtproj 文件与从 EzAPI 生成的文件进行比较的一件事是,前者是 UTF-8 编码的,而 EzAPI 版本是 ANSI 编码的。我想知道这是否是问题所在。我尝试了 Project.SaveAs 的重载方法,它采用 Stream 但无法使其工作。
  • @siva 大智若愚。我刚刚得出结论,使用直接 API 会产生相同的结果。 gist.github.com/anonymous/4961846
  • 我唯一的另一个想法是尝试在 EzAPI 项目网站上提出问题。我在社交媒体网站上没有听到太多关于团队的消息,所以也许他们在准备部署方面很紧张,但这是我能想到的唯一一个提出问题的论坛。您可以作弊,从 SSDT 创建一个空的项目文件,然后使用普通的 XML 库更改 XML。它缺乏优雅,除了直包之外的任何东西,它看起来都令人不快。
  • 一个有趣的观察,我使用 Project.OpenProject 打开了一个“对 SSDT 有效”的项目文件,但它失败并出现 File contains corrupted data 错误消息。我想知道他们是否做了一些奇怪的事情,比如我们都关注的 Project 类是供内部使用的,并且 SSDT 使用了一些我们看不到/不知道的接口。
  • 感谢所有 cmets。在阅读了 ArthurZ 在 msdn 上的帖子后,我还尝试在有效的 .dtproj 文件上使用 OpenProject 方法,结果出现相同的异常:“数据格式无效,错误‘文件包含损坏的数据’。”。我不得不同意 Siva 的观点,它看起来更像是一个 SSIS 问题!

标签: c# .net ssis ezapi


【解决方案1】:

我终于弄清楚发生了什么。

EzProject.SaveAs 不会创建 .dtproj 文件,而是创建 .ispac 文件。其中包含所有项目文件,可以部署到 SQL Server。

当您使用例如 WinZip 打开 .ispac 文件时,您会看到它包含所有包和其他项目元数据。

下面的代码将创建一个包含一个包的项目并将其保存到一个 .ispac 文件中。

        EzProject MyProject = new EzProject();
        MyProject.Name = "MyProject";
        EzPackage MyPackage = new EzPackage();
        MyPackage.Name = "MyPackage";
        MyProject.AddProjectParameter("MyParameter", TypeCode.Boolean);
        MyProject.AddPackage(MyPackage);
        MyProject.SaveAs("C:/MyProject.ispac");
        MyProject.CloseProject();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 2012-09-04
    相关资源
    最近更新 更多