gscott2112

I have a COM dll that I am distributing as a Side-by-Side reg-free dll.
On XP I have no problems using the component, on Vista I get errors trying
to create the COM object.

Either 0x80040154 (Class not registered) when using a GUID to create the
object or
0x800401F3 when trying to use the prog id.

Is there something additional that needs to be done to get Side-By-Side
assemblies to work on Vista

The dll manifest is embedded in the dll

< xml version="1.0" encoding="utf-8" standalone="yes" >
<assembly xmlns="urnTongue Tiedchemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="MyAssembly" version="1.0.0.1" type="win32"
processorArchitecture="x86"/>
<file name="MyDll.dll">
<comClass clsid="{EAFAB8C6-6DA1-453C-BEEB-6DB54F574FE0}"
description="My Class"
tlbid="{10FE49AF-15C5-4FAB-8AB8-0FA72A0A43F9}"
threadingModel="both"
progid="MyDll.MyClass.1">
<progid>MyDll.MyClass</progid>
</comClass>
<typelib tlbid="{10FE49AF-15C5-4FAB-8AB8-0FA72A0A43F9}"
version="1.0"
helpdir=""
flags="hasdiskimage"/>
</file>
<comInterfaceExternalProxyStub
iid="{6A15CB33-C7FD-4740-B4FC-0093C3DC91C4}"
name="IMyClass"
tlbid="{10FE49AF-15C5-4FAB-8AB8-0FA72A0A43F9}"
proxyStubClsid32="{EAFAB8C6-6DA1-453C-BEEB-6DB54F574FE0}"
numMethods="13"/>
</assembly>



Re: General Windows Vista Development Issues Need Help with Side-by-Side Assemblies

gscott2112

I've narrowed the problem down a little more.

If I embed the application manifest inside the exe, then everything works okay on Vista.

If I try to use an external manifest file <app>.exe.manifest, then Vista is failing to locate the DLL.

Is there a work around for this I can't require users of the DLL to embed the manifest file...