Re: How to deploy private Assemblies with VC2005 SP1

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



"Joerg Toellner" <toellner@xxxxxxxxxxx> wrote

This week i installed the SP1 final for MSVC2005. And after that i cannot
deploy any program compiled with that SP1-updated compiler with private
assemblies anymore.

The app runs well on pc's which have MSVC installed. But on "clean" pcs
the app won't start and display an "component is missing. Re-install the
application" error dialog.

[..]

I checked the versioning of the CRT DLL and the versionnumbers in the
manifests (the CRT Manifest and the app embedded manifest), but can't
figure out whats going wrong there. Of course i use the new installed SP1
CRT-DLL with version number 8.0.50727.762. And this number is also in the
manifests.

Linking statically the CRT is not an option as i have to use third party
libs as well, that are build in /MD compiler mode and cant be rebuild in
/MT. And mixing up /MD and /MT compiles end up in a error hell (undefined
externals). The app, compiled with the pre SP1 version of MSVC uses this
libs also, and this libs havent changed in between. So the error hasn't
anything to do with this libs.

What's in the manifests of these third-party DLLs? I guess they still bind
against
the RTM DLLs. I guess, there shouldn't be any binary incompatibilities
between
the RTM and SP1 DLLs, so it should just work with the new DLLs. To
redirect the binding to the new SP1 DLLs you would typically use a
configuration file. I take it, VC8 SP1 installs a publisher configuration (I
haven't
taken a look at SP1 one yet).

I have never needed to do anything like that but I believe you would
probably
need an application configuration and redirect to the SP1 one version. I am
not sure, however, whether that works from the EXE or whether you have
to make the third-party DLL a private assembly (by providing an external
assembly manifest) and redirect the DLL binding there.

From the docs I read a while ago, I'd say the latter is the way to go - but
then
the documentation certainly isn't exactly exhaustive.

-hg


.



Relevant Pages

  • Re: How to deploy private Assemblies with VC2005 SP1
    ... Holger was right....recompiling all the third party libs and dlls solved the ... After that i can ship the CRT and the manifest with my app in the ... Of course i use the new installed SP1 ...
    (microsoft.public.dotnet.languages.vc)
  • Re: From VC6 to .NET 2 questions
    ... >>>would require some previously unneeded files, (dlls, framework and so on). ... >Why do you insist on talking about installers? ... control of your app and not depending on a magic fairy. ... So the fact that a new compiler may or may not require different files ...
    (microsoft.public.vc.mfc)
  • Re: private Deploy of SQL CE 3.1
    ... my app is always a newer one than whatever is in ROM, ... device uses 3.1 dlls. ... All was fine as long as my desktop app was ... I also found that in Platform builder when I removed "sql mobile" ...
    (microsoft.public.sqlserver.ce)
  • Re: private Deploy of SQL CE 3.1
    ... my app is always a newer one than whatever is in ROM, ... device uses 3.1 dlls. ... All was fine as long as my desktop app was ... I also found that in Platform builder when I removed "sql mobile" ...
    (microsoft.public.sqlserver.ce)
  • Re: private Deploy of SQL CE 3.1
    ... my app is always a newer one than whatever is in ROM, ... device uses 3.1 dlls. ... All was fine as long as my desktop app was ... I privately deploy my SqlCe DLLs with my apps, ...
    (microsoft.public.sqlserver.ce)