Можно ли использовать относительные пути для файлов dtsConfig пакетов служб SSIS? - PullRequest
19 голосов
/ 24 октября 2008

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

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

Ответы [ 4 ]

14 голосов
/ 24 октября 2008

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

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

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

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

2 голосов
/ 10 мая 2012

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

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

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

1 голос
/ 19 мая 2012

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

0 голосов
/ 17 октября 2013

Стандартным приемом для решения подобных проблем является сопоставление дисков.

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

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

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

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

...