2016-08-30 199 views
0

有沒有辦法讓一個SSIS項目中的變量指向[relative-project path] \ fixed_foldername \ fixed-filename.csv?Visual Studio中的SSIS項目:有沒有辦法在變量中引用解決方案/項目路徑?

我有一個在Visual Studio中處理多個CSV文件的SSIS項目。這是典型的「處理給定目錄中的所有CSV文件」類型的工作。

儘管SSIS包將查看給定目錄中的每個文件,但在映射源CSV文件中的列時,我們確實需要將一個文件指定爲「模板」。這是我希望包含在解決方案中的文件。

原因是我們使用visualstudio.com進行源代碼控制,並且我希望能夠引用模板文件(以防我們需要更改等),而不管我正在使用哪臺機器。

所以我所做的是在我的項目目錄(bin和obj目錄旁邊)中創建一個名爲「模板源數據文件」的目錄,以包含我的源CSV文件。然後我將CSV文件添加到項目中,使它們出現在「雜項」文件夾下。

但是,這隻能解決我的一半問題。即使強大的CSV文件現在可以通過visualstudio.com源代碼控制在任何主機上使用,但仍然存在文件路徑在變量名稱中被硬編碼的問題。

默認情況下,名爲'CSVFileName'(保存當前正在處理的CSV文件的名稱)的變量指向模板CSV文件名。我擔心的是文件的路徑當然會根據我工作的主機而改變。

我只需要這個幫助Visual Studio開發,以便在開發過程中引用正確的文件名/路徑。這實際上不適用於在生產環境中執行包時的參數。

+0

這是一個排除方式,所以你不必嘗試,如果建議,但我想也許是一個腳本任務使用Directory.GetCurrentDirectory()會告訴你,但引用SQL服務器DTS \ binn路徑。而AppDomain.CurrentDomain.SetupInformation.ApplicationBase實際上會給你用戶本地的Microsoft sql server文件夾.... – Matt

+0

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/e66e88ca-6963-481a- ab4b-c055f58c61c1/how-to-get-application-path-in-integration-services-package?forum = sqlintegrationservices這個鏈接表示它不可能,但它確實給出了一些解決方法,但我認爲在你的情況下最好的方法可能是將CSV模板文件託管在可供所有開發人員引用的文件共享中。 – Matt

+0

@Matt你如何建議這個腳本完成?請記住,我需要它在項目打開時啓動 - 而不是在執行作業時啓動。 – pmdci

回答

0

在閱讀了上面的一些評論並與微軟的一些人交談之後,確實無法做我想做的事情。

最後我做了什麼是遵循馬特的建議,並在各地的網絡共享可用的文件。爲此,我通過Azure存儲文件共享提供了這些文件。

相關問題