Discussion:
manifest vc8.0 problem
(too old to reply)
jc
2009-09-09 19:18:00 UTC
Permalink
Once again i'm having issues with the manifest file.
i'm working on an application with several libraries that i created
and also requires the standard mfc and crt libraries.

everything was working fine and in my clients computers. one day my
application won't start, complaining about the dependency and i
immediately checked with the dependency walker. it complained about
the libraries that is not found or installed.
so i went back to my computer, re compiled all the libraries and the
application and this time i chose not to embed the manifest. when i
checked the manifest, i found that one of my libraries is requiring
version "8.0.50608.0" while all the libraries require version
"8.0.50727.4053". since both of them are installed in my computer i
didn't notice the problem. but my clients computers have only
8.0.50727.4053 installed(i don't have administrator rights to install
the older version and i don't want to).
now my problem is why, the linker thinks that i needed two different
versions of crt libraries. if i manually edit the manifest file and
remove that dependency then the application starts no problem. but i
like to know how it happened and how i prevent it from happening again

thanks
jc
pm
2009-09-10 05:12:02 UTC
Permalink
bug?

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=247057
http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/fd894fd3-4da0-4048-af14-2b32ddda82b9
PM-
Post by jc
Once again i'm having issues with the manifest file.
i'm working on an application with several libraries that i created
and also requires the standard mfc and crt libraries.
everything was working fine and in my clients computers. one day my
application won't start, complaining about the dependency and i
immediately checked with the dependency walker. it complained about
the libraries that is not found or installed.
so i went back to my computer, re compiled all the libraries and the
application and this time i chose not to embed the manifest. when i
checked the manifest, i found that one of my libraries is requiring
version "8.0.50608.0" while all the libraries require version
"8.0.50727.4053". since both of them are installed in my computer i
didn't notice the problem. but my clients computers have only
8.0.50727.4053 installed(i don't have administrator rights to install
the older version and i don't want to).
now my problem is why, the linker thinks that i needed two different
versions of crt libraries. if i manually edit the manifest file and
remove that dependency then the application starts no problem. but i
like to know how it happened and how i prevent it from happening again
thanks
jc
Tim Roberts
2009-09-10 05:52:50 UTC
Permalink
Post by jc
everything was working fine and in my clients computers. one day my
application won't start, complaining about the dependency and i
immediately checked with the dependency walker. it complained about
the libraries that is not found or installed.
so i went back to my computer, re compiled all the libraries and the
application and this time i chose not to embed the manifest. when i
checked the manifest, i found that one of my libraries is requiring
version "8.0.50608.0" while all the libraries require version
"8.0.50727.4053". since both of them are installed in my computer i
didn't notice the problem. but my clients computers have only
8.0.50727.4053 installed(i don't have administrator rights to install
the older version and i don't want to).
That's not the issue. 8.0.50608.0 is a "redirect" version. One of the
side-by-side policies redirects this to whatever the latest installed
version is.

The likely problem is that your clients don't really have 4053. That was
the "security update" version that came out last month. Your development
machine was problem updated to require 8.0.50727.4053, but your clients
don't have it.

Microsoft, of course, wants you to ship the runtime libraries with your
application's installer. Most of us got used to having the VC2005 runtimes
included with the operating system, so we got lazy.

If that's the issue, then the solutions are either switch to static
linking, include the run-time libraries with your installer, or send a link
to the Microsoft page where you can download the 4053 redistributable
runtime.
--
Tim Roberts, ***@probo.com
Providenza & Boekelheide, Inc.
jayachandran kamaraj
2009-09-10 13:15:29 UTC
Permalink
Post by jc
everything was working fine and in my clients computers. one day my
application won't start, complaining about the dependency and i
immediately checked with the dependency walker. it complained about
the libraries that is not found or installed.
so i went back to my computer, re compiled all the libraries and the
application and this time i chose not to embed the manifest. when i
checked the manifest, i found that one of my libraries is requiring
version "8.0.50608.0" while all the libraries require version
"8.0.50727.4053". since both of them are installed in my computer i
didn't notice the problem. but my clients computers have only
8.0.50727.4053 installed(i don't have administrator rights to install
the older version and i don't want to).
That's not the issue.  8.0.50608.0 is a "redirect" version.  One of the
side-by-side policies redirects this to whatever the latest installed
version is.
The likely problem is that your clients don't really have 4053.  That was
the "security update" version that came out last month.  Your development
machine was problem updated to require 8.0.50727.4053, but your clients
don't have it.
Microsoft, of course, wants you to ship the runtime libraries with your
application's installer.  Most of us got used to having the VC2005 runtimes
included with the operating system, so we got lazy.
If that's the issue, then the solutions are either switch to static
linking, include the run-time libraries with your installer, or send a link
to the Microsoft page where you can download the 4053 redistributable
runtime.
--
Providenza & Boekelheide, Inc.
My clients does have 8.0.50727.4053(i verified). because if i remove
the reference (manually) for 8.0.50608.0 the application starts fine.
it is very tricky for me create an installer. i develop a software at
work and like to test it on the other lab computers for which i don't
have admin access. so if i create an installer
i need to call the administrator every time to get it installed. so
all i have is a zip file, which i download to the lab computers and
just extract it and run the program.
my package has one executable and 7 dll files. one of that 7 dll
requires the older version along with the newer version of the crt
libraries. because of that the executable file manifest requires the
older version too (this is all according to the manifest file). if i
remove that dependency line from the manifest file for both that
particular library and the application, the problem solved.

but i like to know how the compiler/linker got this reference to the
older version of the library

thanks
jc
Duane Hebert
2009-09-10 17:56:16 UTC
Permalink
Post by jayachandran kamaraj
My clients does have 8.0.50727.4053(i verified). because if i remove
the reference (manually) for 8.0.50608.0 the application starts fine.
it is very tricky for me create an installer. i develop a software at
work and like to test it on the other lab computers for which i don't
have admin access. so if i create an installer
i need to call the administrator every time to get it installed. so
all i have is a zip file, which i download to the lab computers and
just extract it and run the program.
my package has one executable and 7 dll files. one of that 7 dll
requires the older version along with the newer version of the crt
We do pretty much the same thing as you. Since upgrading to VS2005 we also
have to send the vcredist_x86.exe and have the customer run it for our software to
work. We've had some complaints about this as it now may require an IT admin
guy. Static builds don't work for us so we don't have much choice. I guess we'll write
some installers at some point but for now this more or less works.

Not sure what was wrong with just putting the dlls in the folder with the exe...
Continue reading on narkive:
Loading...