2013-12-13 87 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

雅我認爲這是唯一的選擇,截至目前。在標記這個之前,我會等待更多的答案。謝謝 ! –