有沒有辦法讓一個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開發,以便在開發過程中引用正確的文件名/路徑。這實際上不適用於在生產環境中執行包時的參數。
這是一個排除方式,所以你不必嘗試,如果建議,但我想也許是一個腳本任務使用Directory.GetCurrentDirectory()會告訴你,但引用SQL服務器DTS \ binn路徑。而AppDomain.CurrentDomain.SetupInformation.ApplicationBase實際上會給你用戶本地的Microsoft sql server文件夾.... – Matt
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
@Matt你如何建議這個腳本完成?請記住,我需要它在項目打開時啓動 - 而不是在執行作業時啓動。 – pmdci