2013-06-28 51 views
1

我有,我引用Interop.ActiveDs的SSIS包在我使用的類型是公認的腳本編輯器和腳本構建和節省了就好了。當你執行它拋出異常的包裝SSIS拋出異常:無法加載文件或程序集「Interop.ActiveDs ......」

Could not load file or assembly 'Interop.ActiveDs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. 

當你在所有的屬性都指向一個臨時目錄中的腳本編輯器是毫無疑問,當你保存並退出腳本temp目錄被放棄。當執行腳本副本放在文件系統?也許它不會複製或持續依賴DLL上?

是否可以使用SSIS解決此問題?

到目前爲止什麼,我得到的是ActiveDs是COM和SSIS不會做COM?需要在GAC中註冊它嗎?

回答

1

所以這裏有兩個問題,努力使這項工作在SSIS

if (result.Properties["uSNChanged"] != null && result.Properties["uSNChanged"].Count > 0) 
{ 
    var _uSNChanged = (IADsLargeInteger)result.Properties["uSNChanged"][0]; 
    Output0Buffer.uSNChanged = (_uSNChanged.HighPart << 32) + _uSNChanged.LowPart; 
} 

首先IADsLargeInteger是一個COM對象時。爲了使用它,您需要創建一個Interop dll並將其註冊到GAC中。我相信這是通過這個post解決的。我沒有試過,因爲......

其次,雖然,它似乎,如果一切都正確輸入開始與這一切是可以避免的。因此,爲了不必爲了做不必要的翻譯而與COM Interop混淆,我相信這是更好的解決方案。

if (result.Properties["uSNChanged"] != null && result.Properties["uSNChanged"].Count > 0) 
{ 
    Output0Buffer.uSNChanged = (Int64)result.Properties["uSNChanged"][0]; 
} 
相關問題