2013-12-13 153 views
3

我有使用SSIS进行版本控制的问题。当我编写脚本组件时,它会作为二进制文件检入版本控制,而不是C#文件(尽管这是可以理解的)。因此,下次我在脚本组件的C#文件中进行更改时,我无法看到代码中的差异。SSIS中脚本组件C#文件的版本控制

有没有办法解决这个问题? 你们对此有何看法?

感谢, Vaibhav的

回答

1

所有SSIS包我目前正与合作的(2008 SSIS)商店脚本组件代码直接.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; 
+0

雅我认为这是唯一的选择,截至目前。在标记这个之前,我会等待更多的答案。谢谢 ! –