If you correctly understood that you have a COM server (apparently in the / DLL process) that hosts the objects that you are updating. And you want these updates to be available through IntelliSense in the client project, if you have not compiled the COM server yet, right?
If yes: this is not possible. Let me explain why:
IntelliSense only creates a documentation cache for project references. Linking to COM servers is not the same as referencing .NET projects. For a .NET project, he can create a documentation cache directly from the code model. However, COM servers are usually described in a language that the compiler does not know! tlbimp generates a .NET wrapper that calls the COM server for you. IntelliSense can understand the shell (a DLL that is nothing more than an automatically generated .NET DLL), but not what it actually does. Therefore, you always need to update the packaging.
Whenever you make changes to the COM server, you need to register it (using regsvr32 ) so that the changes are "visible" to the client (in this case, tlbimp ). Then you need to re-add the link to your .NET project, as a result of which tlbimp will create a new tlbimp DLL that IntelliSense understands. This is a deal with COM in .NET environments ...
However, you can try to automate the build process a bit further:
- In your server project, call
tlbimp in the post-build event and let it create the Primary Interop Assembly . - Automatic PIA deployment in the GAC .
- In your client project (.NET project), refer to the PIA.
- Each time you create a new server project, update the IntelliSense cache in the client project ("Change" โ "IntelliSense" โ "Update local cache" or Ctrl + Shift + R ).
Hope this helps!
source share