2012-04-23 13 views
1

誰でもこれを行っていますか?もしそうなら、どのツール/テクニック/アプローチを使用しましたか?SSISプロジェクトをチーム都市でコンパイル

Visual StudioのSQL Business Studioバージョンをインストールすることは可能ですか?

ありがとうございます!

+0

私が間違っていることは間違いありませんが、SSISパッケージでコンパイル/ビルドされるコードの唯一のビットはスクリプトタスクですか?プログラムで利用できるのですか?そうでなければ、コンパイルするものはないと思う。ビルドプロセスの一環としてパッケージを実行したいのですか?あなたは 'dtexec'コマンドを使ってパッケージの実行をスクリプト化することができます。 – booyaa

答えて

1

2012年については...それ人々ガット

1)インストールMSBuildの拡張ようにbuild.xmlファイルを作成し

2)...

<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ファイルの設定が含まれていますので、よろしくお願いします。 – BozoJoe

1

booyaaさんのようにSSISプロジェクトはコンパイルする必要はありませんが、私が行ったことは.dtconfigsをビルド/展開プロセスで設定できるようにすることです。

私はこれを使用して、さまざまな環境での展開でパッケージを実行できます。ビルドはdtconfigファイルのテンプレートをコピーします。 これにはtokens-$(Servername) $(ConnectionString) が含まれています。次に、展開時に置き換えを行い、dtexecをコマンドにラップして実行します。

わからない

関連する問題