#596 resgen TargetInvocationException: InvalidOperationException:

Core (183)

The NAnt, withc is started from a CCNET service,
reports the following error:
External Program Failed: C:\Documents and
Settings\Temp\tmp2231.tmp\resgen.exe (return code was

error: Invalid ResX input.
error: Specific exception: TargetInvocationException
Message: Invalid ResX input. --->
TargetInvocationException: Exception has been thrown by
the target of an invocation. --->
InvalidOperationException: Failed to load ImageList.
2 error(s).

I believe that resgen.exe fails because it does not
have the ‘Resgen.exe.manifest’ file in the TEMP
directory where is running. This file contains:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"

In the previous version of nant [85-rc3] I solved the
problem by puting this Resgen.exe.manifest file to the
following directory:
‘\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin’

Anyone has a clue if I am right and/or has an
solution/explination for this error ?


  • Gert Driesen

    Gert Driesen - 2006-11-07

    Logged In: YES

    Can you please provide a small repro for this issue ?

  • Gigi de langa Pesti

    Logged In: YES

    I need to compile a project, witch has an serialized
    ImageList, with a different version of
    Microsoft.Windows.Common-Controls. In order to do this I
    need a file named “Resgen.exe.manifest” to exist in the
    folder where “resgen.exe” tool is installed.
    I observed that this version of nant (0.85) copy and
    executes resgen.exe from an other directory (temp one). This
    is the reason why it fails to build the project where other
    (than default) version of Common-Controls is needed.

    In nant 0.85-rc3 the “resgen.exe” is executed from the
    directory where is installed, and not from a temp one.

    This assumption are made based one the error messages I

    Nant 0.85-rc3:
    External Program Failed: C:\Program Files\Microsoft Visual
    Studio .NET 2003\SDK\v1.1\bin\resgen.exe (return code was

    Nant 0.85:
    External Program Failed: C:\Documents and
    Settings\build\Local Settings\Temp\tmp2231.tmp\resgen.exe
    (return code was

    And you can see that is a different behavior between the two
    And I can solve the problem for RC3, as mentioned above, but
    for the newer version I will need a way to obtain the
    directory where “resgen.exe” will be copyed in order to put
    the needed file.
    Or maybe you can give another solution for this issue.

    PS> If you want to replicate the problem try to compile this
    project with nant:
    (see in attach).

  • Gigi de langa Pesti

    Logged In: YES
    Originator: YES

    Any news on this issue?

  • Gert Driesen

    Gert Driesen - 2006-11-23
    • assigned_to: nobody --> drieseng
    • status: open --> closed-fixed
  • Gert Driesen

    Gert Driesen - 2006-11-23

    Logged In: YES
    Originator: NO

    This is now fixed in cvs. You can just copy resgen.exe.manifest to the SDK directory in which resgen.exe is located, and NAnt will now automatically pick it up and copy it the intermediate build directory.

    I'll soon upload a new nightly build containing this fix.

    Small question: does your project build using VS.NET 2003 ?

    Thanks for the report !

  • Gigi de langa Pesti

    Logged In: YES
    Originator: YES

    Yes. the project it is build with VS.Net 2003. Because it has the "devenv.exe.manifest" file in the directory of the devenv.exe executable.
    10x for solving this problem.

  • Comment has been marked as spam. 

    You can see all pending comments posted by this user  here

    Anonymous - 2009-10-12

    3 years later, I'm seeing exactly this bug with nant 0.85 ? Is this possible ?

    Last edit: Anonymous 2013-11-20

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks