2013-03-05 41 views
0

我有一個我在SSIS包中引用的DLL。我強烈地將它命名並加入了GAC。在我的開發機器上一切正常。現在我正在嘗試部署該軟件包。因此,在服務器上,我使用我創建的Windows安裝程序包將該DLL添加到GAC中。 GAC中DLL的版本是7.2.0.1。然後,我在服務器上運行包的部署實用程序安裝程序。這成功運行並創建了包含.dtsx文件的包。如果我在服務器上的記事本中打開.dtsx文件並查找對該DLL的引用,則說明它正在引用7.2.0.1。然後我設置工作來實際運行包。開始作業後,程序包運行並失敗。這會在事件查看器中創建一條錯誤消息,指出軟件包正在查找V7.1.0.9。如何解決SSIS dtsx文件和GAC之間的版本錯誤?

我已經到處尋找該版本的DLL的副本,無法找到它。我搜索了我的開發機器和服務器,沒有7.1.0.9。我不確定這個DLL有沒有這個版本。所有參考文獻指向7.2.0.1,但無論我做什麼,它仍然認爲它需要7.1.0.9。

有沒有人有什麼想法可能是錯誤的?

+0

你查找的字符串7.1.0.9的DTSX文件?和任何配置文件? – criticalfix 2013-03-05 15:54:56

+0

我剛剛給它一個鏡頭。它沒有找到 – nleidwinger18 2013-03-05 15:56:22

+0

記事本說7.1.0.9沒有在.dtsx或配置文件中找到 – nleidwinger18 2013-03-05 15:59:40

回答

0

當2005 SSIS和SSIS 2008R2使用自定義DLL,我們發現,我們不得不安裝DLL 在GAC 在.NET Framework 2.0的目錄都,而且這兩個版本必須匹配。 IIRC,BIDS使用.NET Framework 2.0文件夾中的版本進行包設計,也使用dtexec進行包驗證; GAC中的版本用於包執行。我相信(但從未試圖證明)DLL強名稱被編譯爲腳本任務/組件的二進制表示形式。

因此,我首先看看是否有該版本7.1.0.9 DLL的副本隱藏在.NET Framework 2.0文件夾中的任何位置,或PATH環境變量中的任何其他位置,在開發框和目標服務器。

(注:我不知道,如果SSIS 2012具有相同的行爲,因此這可能會或可能不會適用於你的情況)

+0

我不確定問題出在哪裏,但我只是從服務器上刪除了該軟件包,並將該dll從GAC中取出。然後在我的開發機器上,我刪除了對dll的引用,並將它重新添加到了將dll安裝到gac的包和Windows安裝程序中。然後我重複了我的部署步驟,並且一切都同步了。 – nleidwinger18 2013-03-05 18:24:43

相關問題