2016-08-30 13 views
0

SSISプロジェクトの変数を[relative-project path] \ fixed_foldername \ fixed-filename.csvに設定する方法はありますか?Visual StudioのSSISプロジェクト:ソリューション/プロジェクトのパスを変数で参照する方法はありますか?

複数のCSVファイルを処理するVisual StudioにSSISプロジェクトがあります。これは典型的な "特定のディレクトリ内のすべてのCSVファイルを処理する"ジョブの並べ替えです。

SSISパッケージでは、特定のディレクトリ内のすべてのファイルが検索されますが、ソースCSVファイルの列をマップするときは、1つのファイルを「テンプレート」として指定する必要があります。これは私がソリューションに含めるファイルです。

ソース管理にvisualstudio.comを使用しているため、作業中のマシンに関係なく、テンプレートファイルを参照できるようにしたいと考えています(変更などが必要な場合に備えて)。

私が行ったことは、私のソースCSVファイルを含めるために、プロジェクトディレクトリ(binディレクトリとobjディレクトリの中)に "Template Source Data Files"というディレクトリを作成することです。次に、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?フォーラム= sqlintegrationservicesこのリンクは不可能だと言いますが、あなたの場合の最良の方法はおそらくすべての開発者から参照できるファイル共有にCSVテンプレートファイルをホストします。 – Matt

+0

@Mattこのスクリプトがどのように行われたとお考えですか?プロジェクトが開かれたときにキックスタートする必要があることを覚えておいてください。 – pmdci

答えて

0

上記のコメントのいくつかを読んで、マイクロソフトの一部の人々と話をしたところ、実際には私がしたいことはできません。

私がしたことは、マットの提案に従って、どこでも利用可能なネットワーク共有でファイルを利用できるようにすることでした。これを行うために、Azureストレージファイル共有を介してファイルを利用可能にしました。

関連する問題