DLee65
12-05-2013, 06:51 AM
I will confess that I know very little about COM and assemblies outside of how to register them using regasm.
I have been trying to get away from using batch files for registering seven .NET 4.0 assemblies using regasm. However, I have not been successful and I know it is because of my lack of understanding of how this should work.
I can see that COM has been extracted to the MSI database. However, when I start my application, I get errors. When I manually register the assemblies using regasm the application will work. I take this to mean that I did something wrong in setting up my assemblies in the component to extract the COM.
I have been reading through Josh Stechnij's white paper on "What Installation Authors Need to Know about COM Extraction", however, I do not think I am any closer to better understanding how to set this up correctly in my project.
Currently our batch file is setup like this:
%WINDIR%\Microsoft.NET\Framework\v4.0.30319\regasm AmazingCharts.MainBusinessObjects.dll /unregister
%WINDIR%\Microsoft.NET\Framework\v4.0.30319\regasm AmazingCharts.MainBusinessObjects.dll /tlb: AmazingCharts.MainBusinessObjects.tlb
What I want is to create the identical output in the MSI table. I have the VS2010 .tlb file that I can add to the project and extract data, but I do not know how to associate it with the AmazingCharts.MainBusinessObjects.dll, or that I need to. These are things that I do not know about COM. :) I had tried just adding the .tlb files, but I still did not get a successful start to my application. The application checks that these files are registered and reports errors if not.
In the end, I would much rather have all these .NET assemblies part of the MSI table for the sake of resiliency and a cleaner system on uninstall or rollbacks.
Please also note that it is important that I register my .NET assemblies in a certain order. If I do not, then the registration will fail. I am not certain if this plays a factor in how COM Extraction works for InstallShield or not - I was trying to determine this from Josh's white paper, but could not see how it resolves dependencies and sets the order of registration.
Thank you for any insight anyone can provide. It is kindly appreciated.
I have been trying to get away from using batch files for registering seven .NET 4.0 assemblies using regasm. However, I have not been successful and I know it is because of my lack of understanding of how this should work.
I can see that COM has been extracted to the MSI database. However, when I start my application, I get errors. When I manually register the assemblies using regasm the application will work. I take this to mean that I did something wrong in setting up my assemblies in the component to extract the COM.
I have been reading through Josh Stechnij's white paper on "What Installation Authors Need to Know about COM Extraction", however, I do not think I am any closer to better understanding how to set this up correctly in my project.
Currently our batch file is setup like this:
%WINDIR%\Microsoft.NET\Framework\v4.0.30319\regasm AmazingCharts.MainBusinessObjects.dll /unregister
%WINDIR%\Microsoft.NET\Framework\v4.0.30319\regasm AmazingCharts.MainBusinessObjects.dll /tlb: AmazingCharts.MainBusinessObjects.tlb
What I want is to create the identical output in the MSI table. I have the VS2010 .tlb file that I can add to the project and extract data, but I do not know how to associate it with the AmazingCharts.MainBusinessObjects.dll, or that I need to. These are things that I do not know about COM. :) I had tried just adding the .tlb files, but I still did not get a successful start to my application. The application checks that these files are registered and reports errors if not.
In the end, I would much rather have all these .NET assemblies part of the MSI table for the sake of resiliency and a cleaner system on uninstall or rollbacks.
Please also note that it is important that I register my .NET assemblies in a certain order. If I do not, then the registration will fail. I am not certain if this plays a factor in how COM Extraction works for InstallShield or not - I was trying to determine this from Josh's white paper, but could not see how it resolves dependencies and sets the order of registration.
Thank you for any insight anyone can provide. It is kindly appreciated.