2008-10-24 153 views
19

我正在嘗試使我們的SQL Server Integration Services包儘可能便攜,並且防止出現這種情況的一件事是配置路徑始終是絕對路徑,這使得測試和部署成爲頭痛的問題。是否有任何建議讓這個更易於管理?是否可以使用SSIS包dtsConfig文件的相對路徑?

另一個問題是,當另一個開發人員從源代碼​​管理中獲取軟件包時,路徑是特定於開發人員計算機的。

回答

13

如果您嘗試使用Visual Studio執行包,那麼配置文件路徑將在那裏硬編碼。因此,如果您移動項目,則需要更改包設置中的路徑。爲了避免這種情況,您可以使用環境變量選項來存儲配置文件路徑。那麼你只需要改變它。

但是,對於測試和部署,您應該使用dtexec實用程序來執行您的軟件包。爲此製作一些批處理文件。對於每個不同的環境優選一個。這裏的配置文件路徑可以是相對的。

dtexec /File Package.dtsx /Conf configuration.dtsConfig" 

這是如果你是軟件包在文件系統上。您還可以將它們存儲在SQL Server中。您還可以將您的配置存儲在SQL Server中,這可能會提供靈活性。

+3

1表示環境變量。這對於多個開發人員來說是一個很好的解 – 2012-06-01 02:00:45

+6

請注意,如果您已經檢查過SSIS - >「啓用軟件包配置」,它將忽略您放入/ Conf參數中的內容,並使用硬編碼到軟件包中的內容。 – NickHeidke 2012-06-29 19:38:46

2

經過幾個小時努力使這項工作我找到了解決方案here(不是最好的,但它的工作原理)

  1. 在同一目錄下找到你的配置文件(dtsconfig文件)作爲您的解決方案文件( .sln文件)
  2. 總是通過雙擊解決方案文件(.sln文件)打開您的解決方案。這會將「工作文件夾」設置爲解決方案所在的位置,您的配置文件將被正確讀取。

否則,相對路徑不適用於我。

0

我對這些各種各樣的問題股票的標準招被映射驅動器。

通過使用mapped network drive或使用Subst(兩種方法都可互換)。

例如將包的位置映射到N:\,然後在包內使用N:\ MyParentPackage.dtsx,N:\ MyChildPackage.dtsx路徑。軟件包可以位於不同機器上的不同文件夾中的完全不同的驅動器上,只要將軟件包位置映射到N:\

我通常在工程文件的旁邊放置一個腳本來映射驅動器,映射驅動器,以便以前可以輕鬆運行。一個問題,如果你在VISTA-Win8上使用subst,將它映射爲提升和非提升。

我對Visual Studio項目中的文件引用使用相同的方法。只有在使用這種方法時,您才能在開發環境中解決太多問題,並且會用盡驅動器盤符。

相關問題