The NAnt, withc is started from a CCNET service,
reports the following error:
---------
External Program Failed: C:\Documents and
Settings\build\Local
Settings\Temp\tmp2231.tmp\resgen.exe (return code was
-1163019603)
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"
manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
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 ?
Logged In: YES
user_id=707851
Can you please provide a small repro for this issue ?
Project to repro
Logged In: YES
user_id=1639615
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
obtained:
Nant 0.85-rc3:
External Program Failed: C:\Program Files\Microsoft Visual
Studio .NET 2003\SDK\v1.1\bin\resgen.exe (return code was
-1163019603)
Nant 0.85:
External Program Failed: C:\Documents and
Settings\build\Local Settings\Temp\tmp2231.tmp\resgen.exe
(return code was
-1163019603)
And you can see that is a different behavior between the two
versions.
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).
Logged In: YES
user_id=1639615
Originator: YES
Any news on this issue?
Logged In: YES
user_id=707851
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 !
Logged In: YES
user_id=1639615
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.
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
3 years later, I'm seeing exactly this bug with nant 0.85 ? Is this possible ?
Last edit: Anonymous 2013-11-20