tag:blogger.com,1999:blog-6610024298643351332.post2995835552977269469..comments2023-05-23T09:49:49.431+02:00Comments on JWB's blog: Registration-free COM components try-out (continued)Anonymoushttp://www.blogger.com/profile/08293546083561194699noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-6610024298643351332.post-69037825872537494862011-01-20T17:37:03.458+01:002011-01-20T17:37:03.458+01:00Thanks for the update!Thanks for the update!Anonymoushttps://www.blogger.com/profile/08293546083561194699noreply@blogger.comtag:blogger.com,1999:blog-6610024298643351332.post-79096342266317117792011-01-20T17:31:31.752+01:002011-01-20T17:31:31.752+01:00Thanks for a really useful post - which ALMOST got...Thanks for a really useful post - which ALMOST got me to a working solution. Basically I have a C# .Net component exposed to COM that needs to be accessed from another program that was previously created in VB6. Some things that I found that don't match with your post:<br /><br />1. On Windows Server 2003 I did not need to actually bind the .Net dll's manifest into the dll itself - it worked ok as a separate manifest file for the component but the naming is critical - in my case I had an assembly called "my.net.comp" in "my.net.comp.dll" with the "name" attribute in the manifests assemblyidentity set to just "my.net.comp". In this I found the component manifest must be "my.net.comp.manifest" NOT "my.net.comp.dll.manifest"<br /><br />2. For Windows XP I could only get it working with the component manifest bound into the dll - but when I tried to do this with genman32 it just would not work. Neither would a simulation of the .rc method in the walk through - I eventually found this is due to my dll being strong named signed as part of the build step in VS 2008 IDE - this meant I needed to add the publicKeyToken attribute in the two assemblyidentity parts (.exe and .dll's manifests) but even with that it failed - what happens is when you bind in the manifest it breaks the SHA1 hash tag that is given to the strong named dll because it add some stuff to it. <br /><br />The trick was this:<br /><br />1. Add the .rc file to my original C# project and set a build event to compile it to a .res file<br />2. In C# project properties on the Application tab set it to use a resource (down by the icon bit - specifying the .res file made from .rc<br /><br />Then the bind of .res and strong naming all happened together and worked fineJames Horsleyhttps://www.blogger.com/profile/01840300440276285835noreply@blogger.comtag:blogger.com,1999:blog-6610024298643351332.post-24603731638882934502010-11-28T08:11:12.573+01:002010-11-28T08:11:12.573+01:00Gah!
My working desk has marks in the shape of my...Gah!<br /><br />My working desk has marks in the shape of my forehead for not reading your post earlier. I'm messing around with that MSDN article for two whole weeks, trying different manifest files as you mentioned. I'm gonna try your solution right now. keep your fingers crossed!Moran Leflerhttps://www.blogger.com/profile/16908565934668205475noreply@blogger.com