2013-02-15 57 views
4

我正在嘗試使用EzAPI創建一個SSIS 2012項目。但是,我將它保存到磁盤後無法在Visual Studio中打開我的項目文件。如何使用EzAPI創建SSIS 2012項目?

使用創建一個包含一個包一個簡單的項目代碼IM如下:

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文件。我reveive當我嘗試的錯誤是:「從HRESULT x80041FEB例外」

而且當我在記事本打開該文件.dtproj它不包含XML像.dtproj文件應該。它包含了一些亂碼與很多的特殊字符(例如:eQMs,0¼wÆÿÀä$ |)使用

Í'mEzAPI的最新版本可以在這裏下載:http://sqlsrvintegrationsrv.codeplex.com/releases/view/82369

我在做什麼錯?

+0

我可以用你的調查結果同意。有一件事我注意到比較一個SSDT生成.dtproj文件與EzAPI生成的文件是前者是UTF-8編碼,而EzAPI版本是ANSI編碼。我想知道這是否是問題。我嘗試了使用Stream的Project.SaveAs的重載方法,但無法使其工作。 – billinkc 2013-02-15 16:57:33

+0

@siva偉大的思想都一樣。我剛剛得出結論,使用直接的API產生相同的結果。 https://gist.github.com/anonymous/4961846 – billinkc 2013-02-15 17:18:36

+0

我唯一的想法是嘗試在EzAPI項目網站上提出問題。我在社交媒體網站上沒有聽到多少人的消息,所以他們可能在部署準備工作方面做得很好,但這只是我能想到的唯一一個提出問題的論壇。您可以欺騙一下並從SSDT創建一個空的項目文件,然後使用普通的XML庫更改XML。它缺乏優雅,除了直筒外,它看起來不舒服。 – billinkc 2013-02-15 17:39:54

回答

3

我終於想通了事情的原委。

EzProject.SaveAs不會創建.dtproj文件,但一個.ispac文件。其中包含所有的項目文件並可以部署到SQL Server。

當您打開與.ispac文件,例如,WinZip的,你會看到,它包含了所有的包和其他項目的元數據。

下面的代碼將創建一個包含一個包一個項目,並將其保存到一個文件.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();