in reply to "MSVCR90.dll not found" Error Message

The first error message arises because you've compiled DateTime using VC9 and one the resulting DLLs requires the VC9 CRT, but that it cannot be found.

The second error message means either:

Copying DLLs around is not the right way to fix this. Indeed, preventing people from doing that is the primary reason for the whole manifest process to exist.

The first thing you should try is re-building, testing and installing the DateTime module(s).


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"I'd rather go naked than blow up my ass"
  • Comment on Re: "MSVCR90.dll not found" Error Message

Replies are listed 'Best First'.
Re^2: "MSVCR90.dll not found" Error Message
by roho (Bishop) on Mar 28, 2010 at 22:33 UTC
    Thanks for the explanation and suggestion. I re-installed DateTime from the ActiveState repository using ppm install DateTime --force but unfortunately I still get the error message. I also tried re-installing VC9 in hopes that its installation process would re-install MSVCR90.dll, but it did no good. This is a tough one.

    "Its not how hard you work, its how much you get done."

      FWIW: I think the problem lies squarely with the build process for the DateTime module. I just tried to install the module here, and it failed miserably. It use Build.pl instead of the usual makefile.pl, and that seems to be completely broken for Windows.

      C:\Perl32\packages\DateTime-0.55>build cl : Command line warning D9035 : option 'Wp64' has been deprecated an +d will be removed in a future release cl : Command line warning D9035 : option 'Wp64' has been deprecated an +d will be removed in a future release compilet-1271857152.c C:\Users\Nigel\AppData\Local\Temp\compilet-1271857152.obj : fatal erro +r LNK1112: module machine type 'X86' c Checking prerequisites... build_requires: ! Test::More (0.86) is installed, but we need version >= 0.88 ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the v +ersions of the modules indicated above before proceeding with this installatio +n Run 'Build installdeps' to install missing prerequisites. Creating new 'MYMETA.yml' with configuration results Creating new 'Build' script for 'DateTime' version '0.55' C:\Perl32\packages\DateTime-0.55>build installdeps Too early to specify a build action 'installdeps'. Do 'Build installd +eps' instead.

      Don'tcha just love that last error :)

      So then I installed the latest version of Test::Simple, which went successfully and then re-tried Build.pl for DateTime and it reports the same dependancy:

      C:\Perl32\packages>gunzip Test-Simple-0.94.tar.gz gunzip: Test-Simple-0.94.tar.gz: not in gzip format C:\Perl32\packages>gunzip Test-Simple-0.94.tar.gz gunzip: Test-Simple-0.94.tar.gz: not in gzip format C:\Perl32\packages>gunzip Test-Simple-0.94.tar.gz C:\Perl32\packages>tar -xvf Test-Simple-0.94.tar Test-Simple-0.94/ Test-Simple-0.94/.perlcriticrc Test-Simple-0.94/.perltidyrc Test-Simple-0.94/Changes Test-Simple-0.94/examples/ Test-Simple-0.94/examples/indent.pl Test-Simple-0.94/examples/subtest.t Test-Simple-0.94/lib/ Test-Simple-0.94/lib/Test/ Test-Simple-0.94/lib/Test/Builder/ Test-Simple-0.94/lib/Test/Builder/IO/ Test-Simple-0.94/lib/Test/Builder/IO/Scalar.pm Test-Simple-0.94/lib/Test/Builder/Module.pm Test-Simple-0.94/lib/Test/Builder/Tester/ Test-Simple-0.94/lib/Test/Builder/Tester/Color.pm Test-Simple-0.94/lib/Test/Builder/Tester.pm Test-Simple-0.94/lib/Test/Builder.pm Test-Simple-0.94/lib/Test/More.pm Test-Simple-0.94/lib/Test/Simple.pm Test-Simple-0.94/lib/Test/Tutorial.pod Test-Simple-0.94/Makefile.PL Test-Simple-0.94/MANIFEST Test-Simple-0.94/MANIFEST.SKIP Test-Simple-0.94/META.yml Test-Simple-0.94/README Test-Simple-0.94/SIGNATURE Test-Simple-0.94/t/ Test-Simple-0.94/t/00compile.t Test-Simple-0.94/t/00test_harness_check.t Test-Simple-0.94/t/bad_plan.t Test-Simple-0.94/t/bail_out.t Test-Simple-0.94/t/BEGIN_require_ok.t Test-Simple-0.94/t/BEGIN_use_ok.t Test-Simple-0.94/t/buffer.t Test-Simple-0.94/t/Builder/ Test-Simple-0.94/t/Builder/Builder.t Test-Simple-0.94/t/Builder/carp.t Test-Simple-0.94/t/Builder/create.t Test-Simple-0.94/t/Builder/current_test.t Test-Simple-0.94/t/Builder/current_test_without_plan.t Test-Simple-0.94/t/Builder/details.t Test-Simple-0.94/t/Builder/done_testing.t Test-Simple-0.94/t/Builder/done_testing_double.t Test-Simple-0.94/t/Builder/done_testing_plan_mismatch.t Test-Simple-0.94/t/Builder/done_testing_with_no_plan.t Test-Simple-0.94/t/Builder/done_testing_with_number.t Test-Simple-0.94/t/Builder/done_testing_with_plan.t Test-Simple-0.94/t/Builder/fork_with_new_stdout.t Test-Simple-0.94/t/Builder/has_plan.t Test-Simple-0.94/t/Builder/has_plan2.t Test-Simple-0.94/t/Builder/is_fh.t Test-Simple-0.94/t/Builder/is_passing.t Test-Simple-0.94/t/Builder/maybe_regex.t Test-Simple-0.94/t/Builder/no_diag.t Test-Simple-0.94/t/Builder/no_ending.t Test-Simple-0.94/t/Builder/no_header.t Test-Simple-0.94/t/Builder/no_plan_at_all.t Test-Simple-0.94/t/Builder/ok_obj.t Test-Simple-0.94/t/Builder/output.t Test-Simple-0.94/t/Builder/reset.t Test-Simple-0.94/t/Builder/reset_outputs.t Test-Simple-0.94/t/Builder/try.t Test-Simple-0.94/t/c_flag.t Test-Simple-0.94/t/circular_data.t Test-Simple-0.94/t/cmp_ok.t Test-Simple-0.94/t/dependents.t Test-Simple-0.94/t/diag.t Test-Simple-0.94/t/died.t Test-Simple-0.94/t/dont_overwrite_die_handler.t Test-Simple-0.94/t/eq_set.t Test-Simple-0.94/t/exit.t Test-Simple-0.94/t/explain.t Test-Simple-0.94/t/extra.t Test-Simple-0.94/t/extra_one.t Test-Simple-0.94/t/fail-like.t Test-Simple-0.94/t/fail-more.t Test-Simple-0.94/t/fail.t Test-Simple-0.94/t/fail_one.t Test-Simple-0.94/t/filehandles.t Test-Simple-0.94/t/fork.t Test-Simple-0.94/t/harness_active.t Test-Simple-0.94/t/import.t Test-Simple-0.94/t/is_deeply_dne_bug.t Test-Simple-0.94/t/is_deeply_fail.t Test-Simple-0.94/t/is_deeply_with_threads.t Test-Simple-0.94/t/lib/ Test-Simple-0.94/t/lib/Dev/ Test-Simple-0.94/t/lib/Dev/Null.pm Test-Simple-0.94/t/lib/Dummy.pm Test-Simple-0.94/t/lib/MyOverload.pm Test-Simple-0.94/t/lib/NoExporter.pm Test-Simple-0.94/t/lib/SigDie.pm Test-Simple-0.94/t/lib/Test/ Test-Simple-0.94/t/lib/Test/Builder/ Test-Simple-0.94/t/lib/Test/Builder/NoOutput.pm Test-Simple-0.94/t/lib/Test/Simple/ Test-Simple-0.94/t/lib/Test/Simple/Catch.pm Test-Simple-0.94/t/lib/Test/Simple/sample_tests/ Test-Simple-0.94/t/lib/Test/Simple/sample_tests/death.plx Test-Simple-0.94/t/lib/Test/Simple/sample_tests/death_in_eval.plx Test-Simple-0.94/t/lib/Test/Simple/sample_tests/death_with_handler.plx Test-Simple-0.94/t/lib/Test/Simple/sample_tests/exit.plx Test-Simple-0.94/t/lib/Test/Simple/sample_tests/extras.plx Test-Simple-0.94/t/lib/Test/Simple/sample_tests/five_fail.plx Test-Simple-0.94/t/lib/Test/Simple/sample_tests/last_minute_death.plx Test-Simple-0.94/t/lib/Test/Simple/sample_tests/one_fail.plx Test-Simple-0.94/t/lib/Test/Simple/sample_tests/pre_plan_death.plx Test-Simple-0.94/t/lib/Test/Simple/sample_tests/require.plx Test-Simple-0.94/t/lib/Test/Simple/sample_tests/success.plx Test-Simple-0.94/t/lib/Test/Simple/sample_tests/too_few.plx Test-Simple-0.94/t/lib/Test/Simple/sample_tests/too_few_fail.plx Test-Simple-0.94/t/lib/Test/Simple/sample_tests/two_fail.plx Test-Simple-0.94/t/lib/TieOut.pm Test-Simple-0.94/t/missing.t Test-Simple-0.94/t/More.t Test-Simple-0.94/t/new_ok.t Test-Simple-0.94/t/no_plan.t Test-Simple-0.94/t/no_tests.t Test-Simple-0.94/t/note.t Test-Simple-0.94/t/overload.t Test-Simple-0.94/t/overload_threads.t Test-Simple-0.94/t/plan.t Test-Simple-0.94/t/plan_bad.t Test-Simple-0.94/t/plan_is_noplan.t Test-Simple-0.94/t/plan_no_plan.t Test-Simple-0.94/t/plan_shouldnt_import.t Test-Simple-0.94/t/plan_skip_all.t Test-Simple-0.94/t/pod-coverage.t Test-Simple-0.94/t/pod.t Test-Simple-0.94/t/require_ok.t Test-Simple-0.94/t/simple.t Test-Simple-0.94/t/skip.t Test-Simple-0.94/t/skipall.t Test-Simple-0.94/t/subtest/ Test-Simple-0.94/t/subtest/args.t Test-Simple-0.94/t/subtest/basic.t Test-Simple-0.94/t/subtest/die.t Test-Simple-0.94/t/subtest/do.t Test-Simple-0.94/t/subtest/exceptions.t Test-Simple-0.94/t/subtest/for_do_t.test Test-Simple-0.94/t/subtest/singleton.t Test-Simple-0.94/t/tbm_doesnt_set_exported_to.t Test-Simple-0.94/t/Tester/ Test-Simple-0.94/t/Tester/tbt_01basic.t Test-Simple-0.94/t/Tester/tbt_02fhrestore.t Test-Simple-0.94/t/Tester/tbt_03die.t Test-Simple-0.94/t/Tester/tbt_04line_num.t Test-Simple-0.94/t/Tester/tbt_05faildiag.t Test-Simple-0.94/t/Tester/tbt_06errormess.t Test-Simple-0.94/t/Tester/tbt_07args.t Test-Simple-0.94/t/thread_taint.t Test-Simple-0.94/t/threads.t Test-Simple-0.94/t/todo.t Test-Simple-0.94/t/undef.t Test-Simple-0.94/t/use_ok.t Test-Simple-0.94/t/useing.t Test-Simple-0.94/t/utf8.t Test-Simple-0.94/t/versions.t Test-Simple-0.94/TODO C:\Perl32\packages>cd Test-Simple-0.94 C:\Perl32\packages\Test-Simple-0.94>makefile Checking if your kit is complete... Looks good Writing Makefile for Test::Simple C:\Perl32\packages\Test-Simple-0.94>nmake Microsoft (R) Program Maintenance Utility Version 9.00.30729.01 Copyright (C) Microsoft Corporation. All rights reserved. cp lib/Test/Builder/Tester/Color.pm blib\lib\Test\Builder\Tester\Color +.pm cp lib/Test/Builder.pm blib\lib\Test\Builder.pm cp lib/Test/Simple.pm blib\lib\Test\Simple.pm cp lib/Test/Builder/IO/Scalar.pm blib\lib\Test\Builder\IO\Scalar.pm cp lib/Test/More.pm blib\lib\Test\More.pm cp lib/Test/Builder/Module.pm blib\lib\Test\Builder\Module.pm cp lib/Test/Builder/Tester.pm blib\lib\Test\Builder\Tester.pm cp lib/Test/Tutorial.pod blib\lib\Test\Tutorial.pod C:\Perl32\packages\Test-Simple-0.94>nmake install Microsoft (R) Program Maintenance Utility Version 9.00.30729.01 Copyright (C) Microsoft Corporation. All rights reserved. Appending installation info to C:\Perl64\lib/perllocal.pod C:\Perl32\packages\Test-Simple-0.94>popd C:\Perl32\packages\DateTime-0.55>build cl : Command line warning D9035 : option 'Wp64' has been deprecated an +d will be removed i cl : Command line warning D9035 : option 'Wp64' has been deprecated an +d will be removed i compilet-486604800.c C:\Users\Nigel\AppData\Local\Temp\compilet-486604800.obj : fatal error + LNK1112: module ma Checking prerequisites... build_requires: ! Test::More (0.86) is installed, but we need version >= 0.88 ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the v +ersions of the modules indicated above before proceeding with this installatio +n Run 'Build installdeps' to install missing prerequisites. Creating new 'MYMETA.yml' with configuration results Creating new 'Build' script for 'DateTime' version '0.55' C:\Perl32\packages\DateTime-0.55>nmake Microsoft (R) Program Maintenance Utility Version 9.00.30729.01 Copyright (C) Microsoft Corporation. All rights reserved. NMAKE : fatal error U1064: MAKEFILE not found and no target specified Stop. C:\Perl32\packages\DateTime-0.55>build --force cl : Command line warning D9035 : option 'Wp64' has been deprecated an +d will be removed i cl : Command line warning D9035 : option 'Wp64' has been deprecated an +d will be removed i compilet-308543488.c C:\Users\Nigel\AppData\Local\Temp\compilet-308543488.obj : fatal error + LNK1112: module ma Checking prerequisites... build_requires: ! Test::More (0.86) is installed, but we need version >= 0.88 ERRORS/WARNINGS FOUND IN PREREQUISITES. You may wish to install the v +ersions of the modules indicated above before proceeding with this installatio +n Run 'Build installdeps' to install missing prerequisites. Creating new 'MYMETA.yml' with configuration results Creating new 'Build' script for 'DateTime' version '0.55'

      Module::Build is just broken and should be consigned to the scrap heap.


      Personally, I could never recommend any module (DateTime) that requires 1390 files to be installed (as a binary distribution), just to manipulate a few dates. A typical example of O'Woe.

      Use Date::Manip instead. It's old and crusty, but it works.


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.
        I would love to set it aside, but 5 other modules require it, one of which (HTML::FormFu) I'm using as I'm learning Catalyst. The upside is that (so far) this error doesn't seem to affect the execution of the module. The correct date and time are rendered from it, but there is obviously no way this constant error messsage display will be acceptable in a production environment. I'm going to look on the MS web site for the proper way to get this dll from the "\windows\winsxs" directory to where it should be.

        "Its not how hard you work, its how much you get done."

      I re-installed DateTime from the ActiveState repository using ppm install DateTime --force but unfortunately I still get the error message

      So ... you probably have now installed a version of DateTime that has no dependency on MSVCR90.dll - from which we deduce that the error message is coming from some *other* module that DateTime loads (and which was, presumably, built using VC9). Are there no other error messages (in the cmd console, for instance) that provide additional information ?

      If you want to continue going down the 'ppm install' path, I think you need to identify the module(s) that's causing the problem, and then 'ppm install' it with '--force'.

      You can test various modules by running (eg) perl -MList::MoreUtils -e 1
      If List::MoreUtils were the culprit, that would be enough to generate the error. Or, in a script, simply use List::MoreUtils; would be sufficient (iff List::MoreUtils were the culprit).

      Cheers,
      Rob
        Thanks for your suggestion, Rob. The Params::Validate module was the one causing the MSVCR90.dll error messages. I re-installed it from AS repository using ppm and the error message is no longer displayed. What was a bit odd was that Params::Validate 0.95 was already installed on my machine, but running the command 'ppm install Params-Validate' (re-)installed the module without requiring --force and without issuing any warnings about the module already existing. Thanks again for your help. Roy.

        "Its not how hard you work, its how much you get done."