0

I know that this topic has been posted over a dozen times, but I wasn't able to find a topic that fit my issue so I will post all detail below.

To start I will mention that I have two projects: The first is the main application and the second is a DLL. The project was due for a major revision and needed a DLL to be replaced due to the company I work in switching vendors. After creating the DLL needed to import into the project I was successfully able to test and run on my machine as well as other developers machines. However once I tried to deploy it on our barebones testing machine I got the error stating that the application configuration is incorrect.

Seeing as I've seen this error before I tried to install the vcredist but I got the same error message. I tried using dependecywalker to see if I had all my needed files for the application to run to which it stated that I was missing MSVCP80.DLL, MSVCR80.DLL, and MSVCR90.DLL. Seeing as running the vcredist didn't help I tried to create a msi installer. Once I deployed that I got the application to run, but at the same time it didn't. The application needs to load in configuration files to be able to run properly otherwise it is not able to connect to our database.

I was wondering if anyone had any advice on how I can include the needed policies/dependencies in order to get this project to be able to run successfully.

To sum it up:

  • Release application is able to run on other developer machines and able to load all proper configuration files, but cannot be run on any bare bone or test machines.
  • Application created from Visual Studio Installer is able to run, but ignores the configuration file directory and tries to load in default directories.
  • Project is built using VS2005 C++.

Any help would be greatly appreciated.

Thanks,

Sebastian

Seb
  • 3,414
  • 10
  • 73
  • 106
  • Did you check the versions of the (mvscrt) DLLs reported by the Dependency Walker to see if the DLLs are equivalent on each system? – Macke Sep 08 '11 at 12:14
  • They are both equivalent to each other. Odd thing is that the DLLs are loading up alright in dependency walker. – Seb Sep 08 '11 at 13:12
  • Did you also install the right vcredist for vc9 (2008), since mcvcr90 is in the list? Also, is rebuilding in 2008 an option? (to get only one set of mvscrt dlls ?) – Macke Sep 08 '11 at 13:19
  • It's odd but building it in VS 2008 Express had it work fine. Any reason why this would be the case if I built everything in 2005 and don't even have anything related to 2008? – Seb Sep 08 '11 at 15:55
  • Maybe that DLL you're using is built with 2008? Something did depend on msvcr90.dll in your post. Mixing runtimes can be tricky, and Microsoft has added some new rules w.r.t. manifests and hashes of these runtime files to make sure the right DLL is loaded (and in case of conflict, it bails, which is what you have). – Macke Sep 08 '11 at 19:38

2 Answers2

1

There are different versions of redist regarding the VS service pack. So make sure, that if you have installed the VS2005 with service pack 1 you provide the redist for VS2005 service pack 1.

Simon
  • 1,496
  • 8
  • 11
  • Verified and made sure that I have VS2005 SP1 on my computer with SP1 redist installed on the test machine – Seb Sep 08 '11 at 13:12
0

You might have gotten the ATL security update on your build machine but not the target.

oneofmany
  • 13
  • 4