使用Team City编译SSIS项目

时间:2012-04-23 23:30:43

标签: build ssis teamcity

有人这样做过吗?如果是,您使用了哪些工具/技术/方法?

是否可以安装Visual Studio的SQL Business Studio版本?

提前致谢!

2 个答案:

答案 0 :(得分:1)

就像booyaa说SSIS项目不需要编译,但我所做的是使.dtconfigs可以通过构建/部署过程进行配置。

我这样做是为了让我可以在不同的环境中部署包。因此构建将复制dtconfig文件的模板。 这包含令牌 - $(Servername) $(ConnectionString) 然后我在部署时进行替换,然后通过将dtexec包装在命令中来执行。

对2012年不确定。

答案 1 :(得分:1)

得到了人们......

1)安装MSBuild Extensions

2)创建了一个Build.Xml文件......

<Project ToolsVersion="3.5" DefaultTargets="Default" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\ExtensionPack\MSBuild.ExtensionPack.tasks"/>
<Target Name="Default">
    <PropertyGroup>
        <OutputRoot>../../../build-artifacts</OutputRoot>
    </PropertyGroup>
    <ItemGroup>
        <SSISProjectFile Include="SSISProject.dtproj"/>
        <SSISProject Include="@(SSISProjectFile)">
            <OutputDirectory>$(OutputRoot)</OutputDirectory>
        </SSISProject>      
    </ItemGroup>
    <ItemGroup>
        <Namespaces Include="Mynamespace">
            <Prefix>DTS</Prefix>
            <Uri>www.microsoft.com/SqlServer/Dts</Uri>
        </Namespaces>
    </ItemGroup>

    <MSBuild.ExtensionPack.Xml.XmlFile 
        TaskAction="UpdateElement" 
        File="EnclarityDataImport.dtsx" 
        XPath="//DTS:Property[@DTS:Name='ConfigurationString']" 
        InnerText="$(MSBuildProjectDirectory)\EnclarityDataImport.dtsConfig"
        Namespaces="@(Namespaces)"/>
    <MSBuild.ExtensionPack.SqlServer.BuildDeploymentManifest InputProject="@(SSISProject)"/>
</Target>

唯一的诀窍是这里构建的最后一部分。默认情况下,visual studio会为您的dtsx包添加配置和连接字符串文件的绝对路径。 Team City将结合MSBuild扩展使用这些扩展来构建程序包,因此本地路径将破坏构建,因为Team City中构建目录的路径是自动生成的。因此,使用上面的代码和$(MSBuildProjectDirectory),您可以在dtsx文件中旋转路径的值,使其指向编译所涉及的路径。