Контроль версий файлов Script Component C# в службах SSIS

У меня есть эта проблема с использованием контроля версий с SSIS. Когда я пишу Script Component, он попадает в систему контроля версий в виде двоичных файлов, а не в файл C# (хотя это понятно). Поэтому в следующий раз, когда я внесу изменения в файл C# компонента Script, я не смогу увидеть разницу в коде.

Есть ли способ обойти эту проблему? Что вы, ребята, делаете с этим?

Спасибо, Вайбхав

1 ответ

Решение

Все пакеты служб SSIS, с которыми я сейчас работаю (SSIS 2008), хранят код компонента сценария непосредственно в файле.dtsx (это всего лишь файлы XML). Тем не менее, вы можете использовать инструмент сравнения текста (Visual Studio Compare, WinMerge, BIDS Helper Smart Diff) для сравнения файлов.dtsx. Хотя это не самый чистый способ сделать это, он позволяет увидеть разницу между версиями.

Ниже приведен фрагмент, который я извлек непосредственно из файла.dtsx с компонентом сценария (C# хранится как CDATA):

<component id="4829" name="ExecuteQuery" componentClassID="{2E42D45B-F83C-400F-8D77-61DDE6A7DF29}" description="Executes a custom script." localeId="-1" usesDispositions="false" validateExternalMetadata="True" version="4" pipelineVersion="0" contactInfo="Executes a custom script.;Microsoft Corporation; Microsoft SqlServer v10; © 2007 Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;4">
<properties>
<property id="4833" name="SourceCode" dataType="System.String" state="cdata" isArray="true" description="Stores the source code of the component" typeConverter="" UITypeEditor="" containsID="false" expressionType="None"><arrayElements arrayElementCount="18"><arrayElement dataType="System.String"><![CDATA[\main.cs]]></arrayElement><arrayElement dataType="System.String"><![CDATA[/* Microsoft SQL Server Integration Services Script Component
*  Write scripts using Microsoft Visual C# 2008.
*  ScriptMain is the entry point class of the script.*/

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
using Teradata.Client.Provider;
[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{
    private TdConnection tdCn;
    private TdCommand tdCmd;
    private TdDataReader tdRdr;
Другие вопросы по тегам