Можно ли использовать относительные пути для файлов dtsConfig пакетов служб SSIS?

Я пытаюсь сделать наши пакеты SQL Server Integration Services как можно более переносимыми, и единственная вещь, которая мешает этому, заключается в том, что путь к конфигурации всегда является абсолютным путем, что делает тестирование и развертывание головной болью. Есть ли какие-либо предложения, как сделать это более управляемым?

Другая проблема заключается в том, что когда другой разработчик получает пакет из-под контроля исходного кода, путь зависит от машины разработчика.


person John Lemp    schedule 24.10.2008    source источник


Ответы (4)


Если вы пытаетесь выполнить свои пакеты с помощью Visual Studio, путь к файлу конфигурации будет жестко запрограммирован. Поэтому, если вы перемещаете свой проект, вам нужно будет изменить путь в настройках пакета. Чтобы избежать этого, вы можете использовать параметр «Переменная среды» для сохранения пути к файлу конфигурации. Тогда вам нужно будет только изменить это.

Однако для тестирования и развертывания вам, вероятно, следует использовать утилиту dtexec для выполнения ваших пакетов. Сделайте для этого пакетные файлы. Желательно по одному для каждой среды. Здесь путь к файлу конфигурации может быть относительным.

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

Это если ваши пакеты находятся в файловой системе. Вы также можете хранить их в SQL Server. Вы также можете сохранить свою конфигурацию в SQL Server, что может обеспечить гибкость.

person Malik Daud Ahmad Khokhar    schedule 24.10.2008
comment
1 для переменной среды. Это отличное решение для нескольких разработчиков. - person Dayton Brown; 01.06.2012
comment
Обратите внимание, что если вы отметили SSIS -> Включить конфигурации пакетов, он будет игнорировать то, что вы указали в параметре /Conf, и будет использовать то, что жестко закодировано в пакете. - person Nick Heidke; 29.06.2012

После нескольких часов попыток выполнить эту работу я нашел решение здесь (не самый лучший, но работает)

  1. Найдите файлы конфигурации (файлы dtsconfig) в том же каталоге, что и файл решения (файл .sln).
  2. ВСЕГДА открывайте свое решение, дважды щелкнув файл решения (файл .sln). Это установит «рабочую папку» в место, где находится решение, ваш файл конфигурации будет правильно прочитан.

В противном случае относительные пути у меня не работали.

person Thea    schedule 10.05.2012

Воспользуйтесь бесплатной утилитой, которая может редактировать пути к файлам конфигурации SSIS без использования BIDS: http://ssisconfigeditor.codeplex.com/

person Debarchan    schedule 19.05.2012

Мой стандартный трюк для решения подобных проблем — это сопоставление дисков.

Либо с помощью сопоставленного сетевой диск или с помощью Subst (оба метода взаимозаменяемы).

например Сопоставьте расположение вашего пакета с N:\, затем внутри вашего пакета используйте пути, используя N:\MyParentPackage.dtsx, N:\MyChildPackage.dtsx. Пакеты могут находиться на совершенно разных дисках в разных папках на разных машинах, это сработает, если вы сопоставите расположение пакета с N:\

Обычно я помещаю сценарий вместе с файлами проекта для сопоставления диска, который сопоставляет диск, чтобы его можно было легко запустить раньше. Один нюанс: если вы используете subst в VISTA — Win8, сопоставьте его с повышенными и без повышенных прав.

Я использую тот же подход для ссылок на файлы в проектах Visual Studio. Единственная проблема с этим подходом, который вы используете для решения слишком многих проблем в своей среде разработки, и у вас закончатся буквы дисков.

person Mick    schedule 17.10.2013