2013-02-22 2 views
4

Можем ли мы изменить местоположение по умолчанию для шаблонов пакетов? Или, по крайней мере, добавить больше мест?Расположение шаблона пакета SSIS

Я хотел бы создать несколько шаблонов и добавить их в исходный элемент управления, но я не очень хочу добавить файл в папку C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\ProjectItems\DataTransformationProject\DataTransformationItems в исходный элемент управления.

Как вы справляетесь с этим?

+0

Если вас интересуют другие подходы, использование BIML + BIDSHelper для определения ваших шаблонов, а затем генерация нового может быть интересным. – billinkc

ответ

1

Я никогда не пробовал переместить его, но когда мы построили шаблоны, у нас был общий проект, содержащий общий материал (мы такие креативные), как параметры конфигурации для баз данных, а также пакеты шаблонов. В решении также был запущен проект, в котором ничего нет, кроме сценария пост-сборки, где мы скопировали шаблоны в вышеуказанный путь. Таким образом, людям не нужно было беспокоиться об этом «сложном копировании», чтобы начать.

copy /y "$(SolutionDir)\SQL\SSIS\PackageTemplate.dtsx" "$(DevEnvDir)\PrivateAssemblies\ProjectItems\DataTransformationProject\DataTransformationItems"

Как rvphx напомнил мне, вы хотите, чтобы люди, которые используют шаблоны, чтобы сбросить идентификатор пакета. В противном случае вы значительно усложняете отчетность против вашей таблицы sysdtslog90/sysssislog. Бесплатная визуальная студия add, BIDSHelper, имеет функцию сброса GUID из окна проекта. Другая проблема, с которой я столкнулся с нашими собственными шаблонами, - это физическое имя файла, которое мы предоставили, но не совпадающее с свойством Name Package в SSIS. Мы либо назначили имя физического файла нежелательной почты, а затем переименовали его в соответствующее имя или просто не забыли исправить его в свойствах пакета.

+0

просто чтобы убедиться, что я прав! Если новый разработчик выходит на борт, он загружает этот общий проект, содержащий шаблон (и другие материалы) из исходного элемента управления, строит его, а затем создает копию шаблона в соответствующую папку? – Diego

+0

В силу * построения * пустого проекта возникает событие post deploy event, которое обрабатывает копирование пакетов шаблонов в правильную папку. В противном случае, да, это был наш процесс. Не знаю, был ли лучший механизм, но он сработал для нас. – billinkc

+1

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

1

Шаблон, который мы использовали, довольно простой ваниль (в основном пучок стандартных переменных, диспетчеров соединений и обработчиков событий для SSIS 2008), и пару лет назад я написал сценарий NAnt, чтобы построить простой - пакетное решение. Поскольку формат .dtsx - это просто XML, не так сложно сделать файл шаблона текста из минималистского пакета и использовать задачу NAnt <replacetokens> для замены таких вещей, как имена пакетов и GUID. Это даже легко создавать уникальные идентификаторы GUID, так как NAnt позволяет встраивать C# код в сценариях:

<script language="C#" prefix="script" > 
    <references> 
     <include name="System.dll" /> 
     <include name="System.DirectoryServices.dll" /> 
    </references> 
    <imports> 
     <import namespace="System.DirectoryServices"/> 
    </imports> 
    <code> 
     <![CDATA[ 
     [Function("create-guid")] 
     public static string CreateGuid() 
     { 
      return Guid.NewGuid().ToString().Trim(); 
     } 
     ]]> 
    </code> 
</script> 

<property name="PACKAGE_DTSID_GUID" value="${script::create-guid()}"/> 
<property name="PACKAGE_VERSION_GUID" value="${script::create-guid()}"/> 
1

Чтобы ясно ответить на ваши вопросы:

Нет, вы не можете изменить его. Нет, вы не можете добавить больше местоположений.

Как описано, вы можете скопировать копию из одного места в эту папку. Это то, что делают большинство из нас.