Добавление задачи сценария с помощью BIML

Я пытаюсь добавить задачу сценария в свой пакет SSIS через BIML. Как это делается? Я добавил следующее, но ScriptTaskProjectName не разрешается.

        <Script Name="Script Task" LoggingMode="Enabled">  
            <ScriptTaskProjectReference ScriptTaskProjectName="MyScript"  />
        </Script>

person Derrick Bell    schedule 29.01.2014    source источник


Ответы (1)


Быстрый и грязный ответ — использовать существующий пример на bimlscript.com.

<Biml xmlns="http://schemas.varigence.com/biml.xsd">
    <Packages>
        <Package Name="Package2" ConstraintMode="Parallel" ProtectionLevel="EncryptSensitiveWithUserKey">
            <Tasks>
                <Script ProjectCoreName="ST_232fecafb70a4e8a904cc21f8870eed0" Name="ScriptTask 1">
                    <ScriptTaskProject>
                        <ScriptTaskProject ProjectCoreName="ST_c41ad4bf47544c49ad46f4440163feae" Name="TaskScriptProject1">
                            <AssemblyReferences>
                                <AssemblyReference AssemblyPath="Microsoft.SqlServer.ManagedDTS.dll" />
                                <AssemblyReference AssemblyPath="Microsoft.SqlServer.ScriptTask.dll" />
                                <AssemblyReference AssemblyPath="System.dll" />
                                <AssemblyReference AssemblyPath="System.AddIn.dll" />
                                <AssemblyReference AssemblyPath="System.Data.dll" />
                                <AssemblyReference AssemblyPath="System.Windows.Forms.dll" />
                                <AssemblyReference AssemblyPath="System.Xml.dll" />
                            </AssemblyReferences>
                            <Files>
                                <File Path="AssemblyInfo.cs">
                                    using System.Reflection;
                                    using System.Runtime.CompilerServices;

                                    //
                                    // General Information about an assembly is controlled through the following
                                    // set of attributes. Change these attribute values to modify the information
                                    // associated with an assembly.
                                    //
                                    [assembly: AssemblyTitle("ST_c41ad4bf47544c49ad46f4440163feae.csproj")]
                                    [assembly: AssemblyDescription("")]
                                    [assembly: AssemblyConfiguration("")]
                                    [assembly: AssemblyCompany("Varigence")]
                                    [assembly: AssemblyProduct("ST_c41ad4bf47544c49ad46f4440163feae.csproj")]
                                    [assembly: AssemblyCopyright("Copyright @ Varigence 2013")]
                                    [assembly: AssemblyTrademark("")]
                                    [assembly: AssemblyCulture("")]
                                    //
                                    // Version information for an assembly consists of the following four values:
                                    //
                                    //      Major Version
                                    //      Minor Version
                                    //      Build Number
                                    //      Revision
                                    //
                                    // You can specify all the values or you can default the Revision and Build Numbers
                                    // by using the '*' as shown below:

                                    [assembly: AssemblyVersion("1.0.*")]
                                </File>
                                <File Path="ScriptMain.cs">
                                    using System;
                                    using System.Data;
                                    using Microsoft.SqlServer.Dts.Runtime;
                                    using System.Windows.Forms;

                                    // if SSIS2012, use the following line:
                                    [Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]

                                    // if earlier version, use the next line instead of the above line:
                                    // [System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")]
                                    public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
                                    {
                                    enum ScriptResults
                                    {
                                    Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
                                    Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
                                    };

                                    public void Main()
                                    {
                                    Dts.TaskResult = (int)ScriptResults.Success;
                                    }
                                    }
                                </File>
                            </Files>
                        </ScriptTaskProject>
                    </ScriptTaskProject>
                </Script>
            </Tasks>
        </Package>
    </Packages>
</Biml>

Это создает пакет SSIS с прикрепленной к нему одной задачей сценария.

введите здесь описание изображения

Из комментария

В SSIS 2017 вам нужно заменить Assembly-Refs:

  • Система
  • Система.Данные
  • Система.Windows.Forms
  • System.Xml
  • Microsoft.SqlServer.TxScript
  • Microsoft.SqlServer.DTSruntimeWrap
  • Microsoft.SqlServer.DTSPipelineWrap
  • Microsoft.SqlServer.PipelineHost
person billinkc    schedule 29.01.2014
comment
Спасибо. Это сработало для меня, просто застрял на получении по ссылке. - person Derrick Bell; 30.01.2014
comment
В SSIS 2017 вам потребуется заменить Assembly-Refs: System, System.Data, System.Windows.Forms, System.Xml, Microsoft.SqlServer.TxScript, Microsoft.SqlServer.DTSRuntimeWrap, Microsoft.SqlServer.DTSPipelineWrap, Microsoft. SqlServer.PipelineHost - person TGlatzer; 29.04.2020