SSIS 呼叫第三方庫問題解決方式

2022-07-10 04:06:11 字數 711 閱讀 4153

背景:

公司要做乙個呼叫google api 介面的程式,用來上傳檔案到google drive 並分享給其他人。 也已經使用sql server agent 的定時任務處理其他任務,所以要求也要使用相似的技術完成功能。

經過:1、使用google api對ssis的元件完成開發

在我找了一圈之後,在自帶的工具中未發現有可以直接使用的元件,但是在搜尋之後發現一篇文章仔細檢視之後,發現是他們提供的付費產品,廢棄。

2、建立script task,在編輯時生成的專案中用 nuget新增 google api的包,生成專案

新增包後編譯通過,但是執行時,總是報找不到依賴的項,跟沒有被新增引用一樣,再次開啟專案,新增的包引用丟失。原因是ssis的script task 不支援第三方包引用,個人猜測應該只是包含了**檔案,執行時再編譯,不會包含其他依賴檔案。

解決方案: 

網上有人說可以將依賴的程式集檔案放入程式集搜尋路徑,應該沒問題,但是我沒有嘗試,因為對生產環境影響太大

3、利用反射

1)建立新的專案,並引用第三方庫,編譯生成程式集

2)所有生成的檔案放在乙個資料夾

3)在ssis中新增變數,設定為上一步的資料夾路徑

4)在ssis 的script task 中使用反射呼叫**

在第3個方案中,完全滿足了我們的需求,而且**可控,如果後面需要新的功能,還可以進行擴充套件,在此進行記錄,為後來者提供參考,減少彎路。  

android呼叫第三方庫

把第三方so放在新建的libs armeabi 中 因為android.mk檔案中的當前目錄跳到local path call my dir 即jni下,所以這個libs armeabi必須在jni下 android.mk local path call my dir warning local p...

Qt 呼叫第三方庫

一 製作動態庫c 動態庫 c 生成dll,專案名稱mydll 件 ifndef mdll h define mdll h ifdef mylibdll define mylibdll extern c declspec dllimport else define mylibdll extern c ...

mina請求第三方服務無響應問題解決

在專案中需要與第三方服務對接,通過tcp協議傳送和接收資料。因為覺得apache的開源框架mina比較方便,所以在專案中直接使用了。主要的業務邏輯是先建立連線,然後在連線上進行資料的互動,等整個業務流程結束,主動斷開連線。但是在實際對接第三方服務時,發現雖然可以成功和伺服器建立連線,但是mina傳送...