If I understood you correctly you are having a COM server (apparently in-process / DLL), that hosts objects, that you are updating. And you want those updates to be available through IntelliSense in the client project, when you have not yet compiled the COM server, right?
If so: this is not possible. Let me describe why:
IntelliSense only builds a documentation cache for the project's references. Referencing COM servers isn't the same as referencing .NET projects. For .NET project's it is able to build up the documentation cache directly from the code model. However COM servers are usually described in a language, the compiler does not know! tlbimp
generates a .NET wrapper that calls the COM server for you. IntelliSense is able to understand the wrapper (The interop DLL, which is nothing more than an automatically generated .NET DLL), but not what it actually does. So you allways need to keep the wrapper up to date.
Whenever you make a change to the COM server, you need to register it (using regsvr32
), so that the changes are "visible" to the client (in this case to tlbimp
). Then you have to re-add the reference to your .NET project, which results in tlbimp
generating a new interop DLL, that IntelliSense understands. That's the deal with COM under .NET environments...
However you could try to automate your build process a little bit further:
- On your server project, call
tlbimp
in a post-build event, and let it create a Primary Interop Assembly. - Automatically deploy the PIA to the GAC.
- In your client project (.NET project), reference the PIA.
- Every time you've build a new server project, refresh the IntelliSense cache in your client project ("Edit" -> "IntelliSense" -> "Refresh Local Cache", or Ctrl + Shift + R).
Hope this helps!