У нас есть множество пакетов служб SSIS, которые обрабатывают файлы в указанной корневой папке «Data» и загружают ее в указанную целевую базу данных.
Естественно, корневая папка ввода изменяется в средах разработки и производства, как и база данных назначения.
Для определенных входных файлов у нас может быть подпапка из корневой папки данных, но структура файловых папок в разработке соответствует производственной; отличается только местоположение корневой папки.
Я легко могу иметь один файл DtsConfig для управления связью базы данных, изменяя содержимое этого файла в зависимости от того, находится ли файл в среде разработки или в производственной среде.
Ключевая часть:
Однако ConnectionStrings для файлов не так просты. в идеале я хотел бы иметь возможность указать путь к файлу Connectionstring в виде% RootFolder% \ SourceSystemA \ HardCodeFileName.txt, где% Rootfolder% меняется в зависимости от среды.
Однако, если не написать сценарий для изменения пакета во время выполнения (я не видел примеров) или создать весь пакет программно, я не думаю, что это можно сделать. Такое использование переменных среды для применения только к части свойства пакета не поддерживается. (Попробуйте!) Относительные пути также не поддерживаются (хотя наши файлы находятся на другом диске, так что это, возможно, не помогло.)
Не уверен, что принцип «СУХОЙ», насколько я понимаю, здесь уместен, но в основном я хочу отделить те вещи, которые являются статичными, от тех, которые меняются, и позволяют легко обновлять в ОДНОМ месте и применять его везде.
Как это можно сделать?