2012-04-23 49 views
1

有沒有人做過這個?如果是這樣,你使用了什麼工具/技術/方法?用Team City編譯SSIS項目

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

在此先感謝!

+0

毫無疑問,我將被證明是錯誤的,但是編譯/構建在SSIS包中的代碼只有一部分是腳本任務?這是編程方式嗎?如果沒有,那麼我認爲沒有什麼可以編譯的。你的意思是你想運行這個包作爲構建過程的一部分嗎?您可以使用'dtexec'命令編寫程序包的執行腳本。 – booyaa 2012-04-24 08:15:14

回答

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文件中混淆路徑的值,使其指向編譯執行的路徑。

+0

很高興看到包括proj文件設置,thx! – BozoJoe 2013-10-09 03:53:59

1

就像booyaa所說的那樣,SSIS項目不需要編譯,但我所做的是通過構建/部署過程來配置.dtconfigs。

我這樣做,以便我可以運行在不同的環境部署包。所以構建將複製dtconfig文件的模板。 這包含令牌 - $(Servername) $(ConnectionString) 然後我做部署的替換,然後執行包裝dtexec在一個命令。

不知道約2012