You should not need to rebuild tclkit to update the manifest resource.
However, you need to peform
a couple of steps. The tclkit executable is a Windows PE executable
compressed with upx and
has a metakit database appended to the end. To change the resources
the safest method is to
split the file and decompress:
sdx mksplit tclkit.exe # this yields tclkit.head (the exe) and
tclkit.tail (the database)
then
upx -d tclkit.head
Now you can use the mt tool to merge the manifest update with the
embedded manifest resource;
mt -inputresource:tclkit.head;#1 -manifest:admin.manifest
-outputresource:tclkit.head;#1
then rejoin the pieces into a tclkit again:
copy /b tclkit.head + tclkit.tail tclkit-admin.exe
(you could re-compress tclkit.head again here if you want a small exe)
Where admin.manifest contains just the new parts of the manifest required:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
The above steps give me a tclkit executable that requests elevation as
soon as I run it. However, if you are doing this you will
probably need to sign such an executable using a valid authenticode
certificate. You can't do that to a metakit based tclkit but
you can do that using the vlerq based executables. So re-do the steps
above using tclkit-gui.exe if you want to sign the exe.