I am looking for the right method to deploy TBB 2.0 (commercial release, using the vc8 version) on client machines (Windows XP).
To be more specific, I need to know how tbb.dll is linked to CRT (msvcp80.dll and msvcr80.dll). Microsoft CRT has more than one version. Which one was used to build tbb?
Does tbb.dll contain an embedded manifest?
As far as I can tell, tbb doesn't contain an embedded manifest. If so, how am I suppose to deploy tbb on another machine?
I understand the TBB isn't a side-by-side dll. However CRT dll's are "side-by-side" and therefore must be loaded through manifest. Since tbb.dll doesn't have an embedded manifest, a manifest file (tbb.dll.manifest) must be installed together with tbb.dll describing the CRT dll's version that tbb.dll is linked to.
I can create the manifest file by myself, but I need to know the CRT version the tbb.dll was built with.
I assume that you also use VS 2005 (vc8) to build your EXE or DLL that uses TBB, and also that your modules depend on CRT as well; well, you should have included a TBB header and it most probably included some MSVC headers even you do not use those directly. So as your app uses the same runtime and has the manifest, you should be just fine. We only experienced problems when different runtime versions were used in tbb.dll and an app that uses it, e.g. debug vs release, or vc8 vs vc9. And by the way, having the right manifest file next to tbb.dll did not help usin those cases.
Personally, I think that manifests solve less problems than they create. Well, might be I just do not understand how to use those right, and what value they bring.
One suggestion I have heard for a similar question (but unrelated to TBB) was:justcopy subfolders under "C:Program FilesMicrosoft Visual Studio 8VC edistx86" to the .exe's folder. Of all subfolders there, TBB only needs Microsoft.VC80.CRT. It might not be suitable for you of course...