编辑自定义SSIS PipelinComponent会抛出错误“'null'的值对'stream'无效”

时间:2014-09-26 19:10:24

标签: c# sql-server ssis visual-studio-2013 bids

我创建了一个自定义PipelineComponent来将数据转换为正确的案例,如下所示:

[DtsPipelineComponent(DisplayName = "ProperCase")]
public class ProperCaseTransform : PipelineComponent
{
    //irrelevant code here
}

但是,当我将此组件添加到我的数据流中并单击“编辑”时,我遇到以下错误:

  

'null'的值对'stream'无效。 (Microsoft Visual Studio)

     
     

计划地点:

     

at System.Drawing.Icon..ctor(Stream stream,Int32 width,Int32 height)     在System.Drawing.Icon..ctor(流stream,Size size)     at Microsoft.SqlServer.IntegrationServices.Designer.Common.ImageSourceHelper.GetIconFromResource(Assembly assembly,String resourceName,Boolean isLarge)      at Microsoft.DataTransformationServices.Design.DesignUtils.ExtractManagedBitmap(String fileName,String resName,Boolean large)      at Microsoft.DataTransformationServices.Design.DesignUtils.ExtractBitmap(String fileName,String iconResource,Boolean isNative,Boolean large)      在Microsoft.DataTransformationServices.Design.PipelineUtils.GetComponentIcon(IDTSComponentMetaData100 componentMetadata,IServiceProvider serviceProvider)      在Microsoft.DataTransformationServices.Design.FunctionLevelMappingUI..ctor(FunctionLevelComponentUI componentUI,IUserPromptService promptService)      在Microsoft.DataTransformationServices.Design.FunctionLevelComponentUI.EditImpl(IWin32Window parentControl)      在Microsoft.DataTransformationServices.Design.DtsComponentUI.Edit(IWin32Window parentWindow,变量变量,连接连接)

我已经看到Visual Studio 2012发生了类似的问题(显然CU4 for SP1修复了这个问题),但从未用于VS 2013.我该如何解决这个问题?我的组件在编辑时无法使用。

1 个答案:

答案 0 :(得分:6)

我被这个问题给出了提示:error : Value of 'null' is not valid for 'stream'。虽然这显然是IDE中的一个错误,但可以通过向我的自定义组件添加图标来修复:

[DtsPipelineComponent(DisplayName = "ProperCase", IconResource="MyNamespace.app.ico")]
public class ProperCaseTransform : PipelineComponent
{
    //irrelevant code here
}

然后我在dll中包含了一个随机图标文件(名为app.ico),将构建操作设置为“Embedded Resource”,并重新编译;这解决了视觉工作室的问题。

注意: IconResource值的格式为:

[ProjectNamespace] + "." + "Folder path separated by dots" + "." + "iconName.ico"

项目名称空间在项目属性中定义。

示例:名称空间为MyIcon.ico的项目中的文件夹图标中的图标MyProject将具有图标资源值"MyProject.Icons.MyIcon.ico"