Results 1 to 10 of 10

Thread: application deployment with MSVC++ 2008 Express???

  1. #1
    Join Date
    Apr 2007
    Location
    Rakovnik, Czech Republic
    Posts
    175
    Thanks
    43
    Thanked 3 Times in 3 Posts
    Qt products
    Qt4
    Platforms
    Windows

    Default application deployment with MSVC++ 2008 Express???

    is it possible to deploy applications built with MSVC++ 9.0 (2008) Express? The instructions here:


    http://doc.trolltech.com/4.2/deploym...ared-libraries


    are for MSVC++ 8.0 (2005) and Qt 4.2. I'm using MSVC++ 9.0 (2008) and Qt 4.4.3.

    Has anyone successfully deployed the latter? I'm developing/testing on winXP 32-bit. I'm tempted to scrap everything and use mingw--i rarely use the IDE anyway, mostly the VS2008 command prompt--but the third party API I use, coin3d, is better supported with msvc++, and I'm not very good at tracking down build/compile errors so would like to stick with msvc++ if possible.

  2. #2
    Join Date
    Mar 2008
    Location
    Houston, Texas, USA
    Posts
    277
    Thanks
    9
    Thanked 17 Times in 17 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows Maemo/MeeGo

    Default Re: application deployment with MSVC++ 2008 Express???

    Yes it is possible. But I used CMake to create the project solutions when I was on Windows. Just install the SDK and use the command line prompt of the SDK to compile Qt. Use the latest SDK, the one for Vista even if you are using XP. It will allow you to compile Phonon with it
    Qt-4.7.3 | Gentoo ~amd64 | KDE-4.7
    Aki IRC Client for KDE4 | Qt Documentation

  3. #3
    Join Date
    Oct 2006
    Posts
    279
    Thanks
    6
    Thanked 40 Times in 39 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: application deployment with MSVC++ 2008 Express???

    The instructions are the same for 2008. You only have to deploy the Qt dlls and instruct the user(or your installer) to run vcredist_x86.exe(the 2008 version) before your program is run the first time.

  4. #4
    Join Date
    Apr 2007
    Location
    Rakovnik, Czech Republic
    Posts
    175
    Thanks
    43
    Thanked 3 Times in 3 Posts
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: application deployment with MSVC++ 2008 Express???

    Quote Originally Posted by spud View Post
    The instructions are the same for 2008. You only have to deploy the Qt dlls and instruct the user(or your installer) to run vcredist_x86.exe(the 2008 version) before your program is run the first time.
    thanks alot, spud. After I posted my question I found this:


    http://doc.trolltech.com/4.4/deploym...ared-libraries


    This is similar to the link I posted before, but it's updated to Qt 4.4 and though it doesn't mention MSVC++ 2008 Express, it does say you need to run vcredist_x86.exe before your Qt application will work on a deployed machine. This is a bit confusing because I never had to do this before with 2005 Express, though the linked page seems to suggest you need it for 2005. (again, it doesn't even mention 2008)

    Question: most of my end-users are oil company researchers who claim they are not allowed to install programs on their office computers. They apparently don't have trouble with the little NSIS installer I've been using lately because all it does is extract files into the directory in which they've downloaded the Install_myApp.exe. If I put vcredist_x86.exe into the installer, however, my guess is that it will not work because they won't have the administrator privileges necessary to do the installation. Is this a safe assumption?

    Question #2: If I uninstall Qt, my 3d party API (Coin3d), and MSVC++ 2008 Express from my development computer, and start over with MSVC++ 2005 Express and re-build Qt 4.4 and Coin3d... do you think that would return me to my previous situation whereby I can build my Qt/Coin3d applications without having to run vcredist_x86.exe on the computers on which the software will run? Again, I didn't have to use this before... although on the link above, trolltech suggests you (now?) need to do this even with 2005 Express.

    *whew* ...if you've read this far, thanks!

  5. #5
    Join Date
    Oct 2006
    Posts
    279
    Thanks
    6
    Thanked 40 Times in 39 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: application deployment with MSVC++ 2008 Express???

    Welcome to DLL Hell!
    Quote Originally Posted by vonCZ View Post
    This is a bit confusing because I never had to do this before with 2005 Express
    I don't think anything really changed between 2005 and 2008 apart from the name of the dll's. If you never had to use vcredist_x86 before, it was probably because some other installer silently installed it before you. Ever since Visual Studio 6.0 sp1 you have had to make sure that the correct runtime dlls are present on the machine. In the old days you'd just put them in the folder of the exe. Now you're supposed to use vcredist.

    Question 1: I would assume the same, but the only way to be sure is to test it.
    Question 2: I think you could still do it the old way and just deploy the dll's(msvcp90/msvcr90). You would have to fiddle around with manifest files, though. This is a subject which is ridiculously complicated and I would recommend you to avoid it if you can. If you can't, you are going to have to search around in MSDN or some Windows Forums.(keywords: manifest CRT msvcp)

  6. #6
    Join Date
    Apr 2007
    Location
    Rakovnik, Czech Republic
    Posts
    175
    Thanks
    43
    Thanked 3 Times in 3 Posts
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: application deployment with MSVC++ 2008 Express???

    Quote Originally Posted by spud View Post
    Welcome to DLL Hell!
    thanks. it blows...

    Quote Originally Posted by spud View Post
    I don't think anything really changed between 2005 and 2008 apart from the name of the dll's. If you never had to use vcredist_x86 before, it was probably because some other installer silently installed it before you.
    I really appreciate the feedback, but I don't *think* this the case: your silent installation hypothesis. First, in this link (the older Qt 4.2 deployment link):

    http://doc.trolltech.com/4.2/deploym...ared-libraries

    Trolltech doesn't even mention vcredist_x86.exe... they just say

    We also need to include the runtime libraries. To do this, copy the contents of

    <Visual Studio Install Path>\VC\redist\<Architecture>\Microsoft.VC80.CRT
    Also, I had at least 10 or so folks try out the application on their computers and it ran fine without vcredist_x86.exe... even when I simply zipped the directory tree and posted it for them. (in other words: no accidental/unknown installations of anything... just the app.exe, Qt*.dlls, and msvc*80.dlls, plus the application's manifest file and the "Microsoft.VC80.CRT.manifest").

    I'm not arguing- just throwing out my experience, such that it is.

    Quote Originally Posted by spud View Post
    Question 1: I would assume the same, but the only way to be sure is to test it.
    Yep... I guess I need to create an account on my test computer with limited privileges... and see if I'm able to install a package that includes a vcredist_x86.exe installation. I've never created a user account on windows, but as far as I can tell there are only two types: those with administrator privileges, and "limited." Presumably these oil guys simply have a "limited" account.

    Quote Originally Posted by spud View Post
    Question 2: I think you could still do it the old way and just deploy the dll's(msvcp90/msvcr90). You would have to fiddle around with manifest files, though.
    again, not arguing: but I didn't have to do this before. I just copied the files (runtime dlls and .manifest) into the application's directory and it deployed with no problems.

  7. #7
    Join Date
    Apr 2007
    Location
    Rakovnik, Czech Republic
    Posts
    175
    Thanks
    43
    Thanked 3 Times in 3 Posts
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: application deployment with MSVC++ 2008 Express???

    To run vcredist_x86.exe, user must have administrator privileges.

    If anyone is using MSVC++ 2008 Express to make deployable applications *without* having to use vcredist_*.exe, please let me know. I was able to do this with 2005--i just included the necessary DLLs and manifest in the directory with the executable--but not 2008.

    thanks

  8. #8
    Join Date
    Apr 2007
    Location
    Rakovnik, Czech Republic
    Posts
    175
    Thanks
    43
    Thanked 3 Times in 3 Posts
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: application deployment with MSVC++ 2008 Express???

    The nightmare is finally over... I think.


    For the record: *as far as I know* from both research and numerous attempts, you cannot deploy applications built with MSVC++ Express--either the 2005 edition or the 2008 edition--*without* running vcredist*.exe on the deployed computer first. Keep in mind: running vcredist*.exe requires admin privileges; otherwise this deployment method works fine.


    In the past, however, I was able to deploy applications built with MSVC++ 2005 Express without having to run vcredist*.exe on the deployed computer. 3 years ago I installed MSVC++ 2005 Express on my Thinkpad and wrote deployable apps by simply including the msvc*80.dll's and the Microsoft.VC80.CRT.manifest in the application folder. This no longer works, not for me anyway. I'm not sure why it worked before; perhaps:

    1. previously, I hadn't installed MSVC++ 2008 Express before installing MSVC++ 2005 Express. This could be the reason I've had the current trouble with MSVC++ 2005, but I don't think so.

    2. The old SDK I installed originally with 2005 is no longer available; the new one might be the reason my old deployment method no longer works. This is my guess.

    3. It's possible that prior to installing MSVC++ 2005 Express 3 years ago, I had installed Visual Studio 2005... I don't remember. Anyway, if I did install Visual Studio, I "deleted" it a long time ago... but I'm sure lots of stuff still remained and perhaps my MSVC++ 2005 Express was building against some of the stuff left over from the Visual Studio installation... which enabled me to avoid having to use vcredist*.exe.


    So, the solution: I wiped my C: drive and reinstalled WindowsXP. I then installed Visual Studio 2005. (not the express edition, mind you: the bought-and-paid-for edition). And now I can deploy applications without having to run vcredist*.exe first.

  9. #9
    Join Date
    Mar 2006
    Posts
    58
    Thanks
    2
    Thanked 3 Times in 3 Posts
    Qt products
    Qt3 Qt4
    Platforms
    Unix/X11 Windows

    Default Re: application deployment with MSVC++ 2008 Express???

    I have not had to include/use vcredist*.exe on another machine when I used VC++ 2008 express. However, I built a static Qt first, and the app was built static.

  10. #10
    Join Date
    Apr 2007
    Location
    Rakovnik, Czech Republic
    Posts
    175
    Thanks
    43
    Thanked 3 Times in 3 Posts
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: application deployment with MSVC++ 2008 Express???

    Quote Originally Posted by ksqt View Post
    I have not had to include/use vcredist*.exe on another machine when I used VC++ 2008 express. However, I built a static Qt first, and the app was built static.
    Thanks; I forgot to add this applies to shared lib builds.

    I must confess: I was under the impression that Coin3d--a third party SDK i'm using in my Qt apps--had to be built shared with the Open Source edition, which I'm using. I think this used to be the case, but I can't find anything about it either way... so building everything statically would probably have worked also.

Similar Threads

  1. deployment problem: msvc++ 2008 Express, Qt 4.4.3
    By vonCZ in forum Qt Programming
    Replies: 7
    Last Post: 10th November 2008, 14:38
  2. Static application MSVC 2005 no image
    By bitChanger in forum Installation and Deployment
    Replies: 2
    Last Post: 26th August 2008, 13:06

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.