У меня есть проект, который выполняет некоторый код на SSIS в SqlServer 2005 и SqlServer 2008. Моя проблема заключается в том, что я поддерживаю два решения Visual Studio для этого, потому что типы данных для двух версий SQL Server различны (заканчивается на..90 на SQL Server 2005 и ... 10 на SQL Server 2008).Они также находятся в разных сборках.
Существует ли простой способ управлять этим как при разработке, так и при сборке, я ненавижу вводить свой код в двух местах (каждое решение), а с приходом SQL Server 2011 яподозреваю, что мне придется сделать это три раза.Как вы решаете это, или какой-либо совет о том, как решить это в целом?
Редактировать: Вот пример того, что я делаю, как мне кажется, это трудно учестьэто в интерфейсе, или?
foreach (IDTSVirtualInputColumn90 virtualColumn in virtualInput.VirtualInputColumnCollection)
{
if (string.Compare(virtualColumn.Name, columnTransformation.FromColumn.Name, true) == 0 || (columnTransformation.FromColumn.Preformatted && columnTransformation.FromColumn.Name.EndsWith(" as \"" + virtualColumn.Name + "\"")))
{
convInstance.SetUsageType(input.ID, virtualInput, virtualColumn.LineageID, DTSUsageType.UT_READONLY);
IDTSOutputColumn90 outputColumn = convComponent.OutputCollection[0].OutputColumnCollection.New();
outputColumn.Name = virtualColumn.Name + " (Converted)";
outputColumn.SetDataTypeProperties(columnTransformation.ToColumn.DataType, columnTransformation.ToColumn.Length, columnTransformation.ToColumn.Precision, columnTransformation.ToColumn.Scale, 0);
outputColumn.ErrorRowDisposition = DTSRowDisposition.RD_FailComponent;
outputColumn.TruncationRowDisposition = DTSRowDisposition.RD_IgnoreFailure;
IDTSCustomProperty90 outputProp = outputColumn.CustomPropertyCollection.New();
outputProp.Name = "SourceInputColumnLineageID";
outputProp.Value = virtualColumn.LineageID;
outputProp = outputColumn.CustomPropertyCollection.New();
outputProp.Name = "FastParse";
outputProp.Value = false;
break;
}
}