Sql server SSIS包模板位置

Sql server SSIS包模板位置,sql-server,ssis,sql-server-2012,ssis-2012,Sql Server,Ssis,Sql Server 2012,Ssis 2012,我们可以更改包模板的默认位置吗?或者至少增加更多的位置 我想创建一些模板并将它们添加到源代码管理中,但我不太喜欢将C:\Program Files(x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateSassemblies\ProjectItems\DataTransformationProject\DataTransformationItems文件夹中的文件添加到源代码管理中 你是如何处理的?我从未尝试过移动它,但当我们构建模板时,我们有一

我们可以更改包模板的默认位置吗?或者至少增加更多的位置

我想创建一些模板并将它们添加到源代码管理中,但我不太喜欢将
C:\Program Files(x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateSassemblies\ProjectItems\DataTransformationProject\DataTransformationItems
文件夹中的文件添加到源代码管理中


你是如何处理的?

我从未尝试过移动它,但当我们构建模板时,我们有一个包含公共材料(我们很有创意)的公共项目,例如数据库的配置设置以及模板包。该解决方案还有一个启动项目,其中没有任何内容,只有一个构建后脚本,我们可以将模板复制到上面的路径中。这样一来,人们就不必担心这些“复杂的复制材料”了

copy/y“$(SolutionDir)\SQL\SSIS\PackageTemplate.dtsx”“$(DevEnvDir)\PrivateSassemblies\ProjectItems\DataTransformationProject\DataTransformationItems”


正如rvphx提醒我的那样,您希望有人使用您的模板重置包ID。否则,您将使针对sysdtslog90/SYSSSILOG表的报告变得非常复杂。免费的VisualStudio附加组件具有从项目窗口重置GUID的功能。我在使用自己的模板时遇到的另一个问题是,它们可能是我们提供的物理文件名,但与SSIS中的Package name属性不匹配。我们要么指定一个垃圾物理文件名,然后将其重命名为正确的名称,要么记住在包属性中对其进行修复。

我们使用的模板非常简单(主要是一组标准变量、SSIS 2008的连接管理器和事件处理程序),几年前,我写了一个脚本来构建一个简单的单包解决方案。由于.dtsx格式只是XML,所以从一个最简单的包中生成一个文本模板文件并使用NAnt的
任务来替换包名和GUID之类的内容并不太困难。创建独特的GUI甚至很容易,因为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()}"/>



要清楚地回答您的问题:

不,你不能改变它。 不,您不能添加更多位置


如上所述,您可以使用脚本将副本从一个位置复制到此文件夹。这就是我们大多数人所做的。

只是为了看看我是否做对了!如果新开发人员加入,他或她会从源代码管理下载这个包含模板(和其他内容)的公共项目,构建它,然后构建将模板复制到适当的文件夹?通过构建空项目,启动部署后事件,处理将模板包复制到正确文件夹的操作。否则,是的,这就是我们的过程。不知道是否有更好的机制,但它对我们有效。只是想指出,当我们考虑从模板文件构建包时,包GUID往往保持不变。因此,在进行日志记录和其他工作时,基于guid聚合数据会有点困难。这是因为我遇到了一个类似的问题。为了解决这个问题,@rvphx,我们的模板有注释,明确说明“重命名对象,而不仅仅是物理文件。使用BIDSHelper重置所有ID”,这听起来很奇怪,但GUID是一个已知的问题。如果你查看培训手册,它会说从用户定义的模板创建包后,其ID属性的值将与模板中的值相同。因为这可能使在日志条目和审核中难以区分从同一模板创建的不同包,所以您应该在部署包之前更改标识符,最好是在创建包之后更改标识符。“不知道他们为什么不解决这个问题!如果您对其他方法感兴趣,那么使用BIML+BIDSHelper定义模板并生成新模板可能是一种有趣的方法。