升級 SQL Server 2008 Integration Services 的自訂物件
在 SQL Server 2008 中,有一些帶來突破性變更的新 Integration Services 功能,這些變更會影響 SQL Server 2005 Integration Services 內建的自訂物件。如果您想要在 SQL Server 2008 Integration Services 封裝中使用這些自訂物件,必須升級這些物件。
此主題描述如何為您的自訂物件決定最佳的升級選項,以及如何將這些物件從 SQL Server 2005 Integration Services 部署到 SQL Server 2008 Integration Services。此外,也會說明如何確保在封裝的自動升級期間,找到您的更新自訂物件。
決定如何升級自訂物件
您可以選擇直接將自訂物件升級或是升級並回復您的物件:
僅升級:在本選項中,您變更自訂物件,使其與 SQL Server 2008 Integration Services 相容。
升級與回復:在本選項中,您先升級物件。接著,將新組件版本指派到已升級的物件,並建立對應檔案,來為這些新物件識別位置。
不論您選取哪個升級選項,都必須在物件的使用者嘗試升級包含這些物件的封裝之前,升級自訂物件。當封裝升級引擎嘗試升級封裝時,引擎會嘗試具現化這些封裝中的自訂物件。如果電腦沒有這些自訂物件的升級版本,封裝升級引擎將無法具現化物件。因為無法具現化物件,所以封裝升級引擎將無法升級封裝。
[!附註]
BI Development Studio 的 SQL Server 2008 版本會在您開啟個別的 SQL Server 2005 封裝時,自動啟動封裝升級引擎。「封裝升級精靈」也會在升級封裝批次時,使用相同的封裝升級引擎。
為了協助您決定是要只升級或是升級與回復,下表指出各種要考慮的因素。
選項 |
對封裝升級的影響 |
對並存的影響 |
---|---|---|
僅升級自訂物件 |
您不必採取任何其他步驟。封裝升級引擎可以順利地升級包含自訂物件的封裝。 |
您只能在不同的電腦上分別使用自訂物件的 SQL Server 2008 版本或 SQL Server 2005 版本。您無法在同一部電腦上使用自訂物件的 SQL Server 2005 版本和 SQL Server 2008 版本。 |
升級與回復自訂物件 |
您必須建立對應檔案並隨升級的物件散發。否則,封裝升級引擎將無法順利地升級包含自訂物件的封裝。 |
您可以在同一部電腦上使用 SQL Server 2005 封裝中的 SQL Server 2005 版自訂物件,以及 SQL Server 2008 封裝中的 SQL Server 2008 版自訂物件。 |
升級您的自訂物件
下列程序簡述如何升級自訂物件,使其與 SQL Server 2008 Integration Services 相容。
更新自訂物件
移除 9.0 版的 Integration Services 組件參考,並以相同組件的 10.0 版參考加以取代。
將程式碼中的 IDTSxxx90 物件重新命名為相等的 IDTSxxx100 物件。
查詢有關過時或是已被取代之程式碼成員的警告,並以相等的新成員加以取代。
在升級自訂物件之後,就可以選擇是否也要回復這些物件。您不必回復升級的自訂物件。如果您決定不要回復自訂物件,將需要部署升級的自訂物件,如本主題稍後所述。
然而,如果您想要在 SQL Server 2005 Integration Services 與 SQL Server 2008 Integration Services 封裝中同時使用不同版本的自訂物件,將需要回復升級的物件,如下一節所述。
回復您的自訂物件
回復自訂物件的方式,端視您是以 Managed 程式碼或機器碼來撰寫這些物件而定:
Managed 程式碼:對於以 Managed 程式碼撰寫的自訂物件而言,回復表示遞增組件版本號碼。
機器碼:對於以機器碼撰寫的自訂物件而言,回復表示變更 ProgID 與 CLSID。
在回復自訂物件之後,必須為這些物件提供升級對應檔案。在封裝升級期間,這些對應檔案會告訴封裝升級引擎,如何以新版本取代舊版的自訂物件。
對應要升級的自訂物件之版本
SQL Server 2008 Integration Services 在 %ProgramFiles%\Microsoft SQL Server\100\DTS 資料夾中加入新子資料夾 UpgradeMappings。這個子資料夾是您部署對應檔案的位置,這些檔案會告訴封裝升級引擎如何將 SQL Server 2005 Integration Services 物件對應到其新的 SQL Server 2008 對等項目。
在將對應檔案部署到 UpgradeMappings 子資料夾之後,Integration Services 就可以升級含有自訂物件的封裝。只有在封裝升級期間才需要對應檔案。在升級所有的封裝之後,您可以移除對應檔案。如需詳細資訊,請參閱<升級 Integration Services 封裝>。
所有的對應檔案都必須是 XML 格式,如下列範例對應檔案所示。
[!附註]
您的對應檔案必須有 ".xml" 副檔名,否則封裝升級引擎將無法發現這些檔案。
範例對應檔案
<?xml version="1.0" encoding="utf-8"?>
<Mappings xmlns="https://www.microsoft.com/SqlServer/Dts/UpgradeMapping.xsd">
<!-- Connection Managers -->
<ConnectionManagerMapping tag="MSOLAP - Analysis Services connections"
oldValue="MSOLAP90"
newValue="MSOLAP100" />
<!-- Extensions -->
<ExtensionMapping tag="my custom object"
oldAssemblyStrongName="MyCustomAssembly.MyCustomTask, MyCustomAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
newAssemblyStrongName="MyCustomAssembly.MyCustomTask, MyCustomAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
<!-- Providers -->
<ProviderMapping tag="SQL Server Native Client - Version dependent"
oldValue="sqlncli.1"
newValue="sqlncli10.1" />
<ProviderMapping tag="SQL Server Native Client - Version independent"
oldValue="sqlncli"
newValue="sqlncli10" />
<ProviderMapping tag="MSOLAP - Analysis Services connections"
oldValue="msolap.3"
newValue="msolap.4" />
</Mappings>
建立您自己的 <ExtensionMapping> 元素
如上述範例對應檔案中所示,<ExtensionMapping> 元素是將 SQL Server 2005 Integration Services 物件對應至其新的 SQL Server 2008 Integration Services 對等項目的元素。在您建立新的 <ExtensionMapping> 元素之後,必須提供值給下表中的屬性。
屬性 |
描述 |
---|---|
tag |
描述自訂物件的文字 (這項描述是用於記錄)。 |
oldAssemblyStrongName |
在 SQL Server 2005 Integration Services 中的自訂物件組件之強式名稱。 |
newAssemblyStrongName |
在 SQL Server 2008 Integration Services 中的自訂物件組件之強式名稱。 |
對應組件時您有下列選項:
您可以使用完整的類別名稱:<assembly name>.<class name>, <assembly name>, Version=<version>, Culture=<culture>, PublicKeyToken=<key>。在本主題稍早的範例對應檔案中有顯示這個格式。
您可以提供組件本身的強式名稱、不含類別名稱,如下列範例所示:
<ExtensionMapping tag="my custom object" oldAssemblyStrongName="MyCustomAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" newAssemblyStrongName="MyCustomAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
如果您提供組件本身的強式名稱,會將舊組件的所有類別都對應到新組件。
部署升級的自訂物件
部署更新之自訂物件的步驟類似於部署 SQL Server 2005 的步驟。唯一的差別在於現在是將自訂組件複製到 %ProgramFiles%\Microsoft SQL Server\100\DTS 資料夾之下的子資料夾,而不是複製到 %ProgramFiles%\Microsoft SQL Server\90\DTS 資料夾。
如果您回復自訂物件,請記住將對應檔案部署到 UpgradeMappings 資料夾,以支援自動升級使用這些已回復物件的封裝。
|