1

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

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

提前致谢!

4

2 回答 2

1

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

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

不确定2012年。

于 2012-04-25T14:09:19.263 回答
1

明白了各位...

1) 安装 MSBuild 扩展

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 文件上的路径值,使其指向正在执行编译的路径。

于 2012-04-26T21:23:32.197 回答