I've run into this a second time now. I'm hoping for some resolution AND guidance for proper build, save, etc. protocols in BIDS.
I've coded a custom component, included post-build procedures to add it to the GAC, selected it from the "Choose Items..." menu, and successfully added to a data flow. I've then been able to succesfully debug it.
This was all Friday afternoon. I shut down my BIDS session(s) and called it a week. This morning when I open BIDS, I get the following error when I attempt to add it to a data flow task:
TITLE: Microsoft Visual Studio
------------------------------
The component could not be added to the Data Flow task.
Could not initialize the component. There is a potential problem in the ProvideComponentProperties method.
------------------------------
ADDITIONAL INFORMATION:
Error at Data Flow Task [DTS.Pipeline]: Component "component "" (16)" could not be created and returned error code 0x80131600. Make sure that the component is registered correctly.
------------------------------
Exception from HRESULT: 0xC0048021 (Microsoft.SqlServer.DTSPipelineWrap)
------------------------------
BUTTONS:
OK
------------------------------
What would explain this I'm new to VS/BIDS. Am I improperly shutting down my BIDS sessions Is a save required for my code Does "Build <component>" not automatically save
Also, when I re-build a component after making a change to it, what do I need to do in my package's Data Flow task Delete the current component, re-add it, and configure it again I'm sure there are certain things that require one type of re-initialization vs. others (i.e., making a change to the Design Time code vs. making a change to code within the ProcessInput method.)
What can I do to properly register this now I'm dead in the water and have no idea what to do. Any help's appreciated.

Custom component seems to un-register itself?
EddieMu
Still receiving the same error message. I've checked C:\WINDOWS\assembly and %PROGRAMFILES%\Microsoft SQL Server\90\DTS\PipelineComponents and verified that both have what's needed in each. The dll timestamp in the PipelineComponents updates each time I build the component as well.
Any ideas where else I could look Or what other information would be useful
Here's the output of my build:
------ Build started: Project: NameCleanse, Configuration: Debug Any CPU ------
NameCleanse -> C:\Program Files\Microsoft SQL Server\90\DTS\PipelineComponents\IE.Dts.Pipeline.NameCleanse.dll
"C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\\..\..\SDK\v2.0\Bin\gacutil" /if "C:\Program Files\Microsoft SQL Server\90\DTS\PipelineComponents\IE.Dts.Pipeline.NameCleanse.dll"
Microsoft (R) .NET Global Assembly Cache Utility. Version 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
Assembly successfully added to the cache
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
Selva
In the original post, I stated that this is the second time this has happened. The first instance this occurred I assumed I'd mucked around with the versioning and got myself in a bind. So basically, I created a new project and followed the Wrox Press book step-for-step through assembly signing and then I copied the code from the first attempt into the second and built the new component.
All was well until I left for the weekend and came back. I had run the component multiple times, debugged it, etc. That was more or less what happened the first time.
In this component, I'm referencing a 3rd party COM object, passing data to it, and setting buffer columns to the results returned (again, just giving any information...)
Oh, also, I'm doing this in VB rather than C#.
Steve Lacey
First-chance exception at 0x77e55dea in devenv.exe: Microsoft C++ exception: [rethrow] at memory location 0x00000000..
First-chance exception at 0x78144d3a (msvcr80.dll) in devenv.exe: 0xC0000005: Access violation reading location 0x0b437000.
Mauro Mazzieri
No, that last one isn't any help.To me anyway :)
You haven't got your assembly version number set to auto-increment in AssemblyInfo.cs have you
-Jamie
Sankar N
That seems strange. Check to see whether the DLL is still GACd' and make sure that its in %PROGRAMFILES%\Microsoft SQl Server\90\DTS\PipelineComponents
The answer to what you need to do when you rebuild a component is "it depends". I generally find that if the component metadata (i.e. inputs, outputs custom properties) hasn't changed then you don't need to go through the rigmarole of adding it to the data-flow again. I can't come up with an exact scenario where you need to do it - its a bit of an inexact science.
What is true is that you don't always need to re-add it into the toolbox and the data-flow as long as the assembly version number does not change. And that is good news.
-Jamie
Edgar Zapata
In one BIDS session I had my package containing the custom component. In the other, I had my VB code, which I was making changes to after debugging. Because I wasn't making change to anything other than the PreExecute and ProvideComponents methods (or so I thought), I was simply re-executing the the package without closing out my package session. In one "fix" I had actually moved the declaration of the COM object I mentioned to general declarations, which broke the component. But, because I was not reloading it, the component and package continued to work. Only after I reloaded it following the weekend did that first error get thrown.
I've found that if I right click on my package in Solution Explorer and choose "Reload with Upgrade" it'll reload the package without requiring me to shut down BIDS (which is a hassle.) Then I'll know right away if the last change broke it.
DmitryMS
You will only need to delete the existing component if you have changed methods which need to be re-run from the start, or you change the external "view" of the component such as the strong name or change properties.
If you change design-time methods and want to test them in BIDS then you will need to restart BIDS after each compilation, "Build XXX"
If you change run-time then you can just re-exceute the package as execution process is a separate process from BIDS. In fact for testing run-time issues, set your project debug option to be DTEXE and add command line parameters to load a sample package in which you use your component. This is great for testing changes in ProcessInput for example.