Adding an XP Embedded binary to my own custom component

J

jimt

Hi,

I am trying to get mpnotify.exe into my SP2 FP2007 xpe image. This
executable is present in all XP Pro installs, and it in the XP Embedded
Repository under the repository that begins as "{484C...". Unfortunately
none of the released XPe components declare this file, so it never gets
loaded into the XPe runtime image. I tried using XP Pro emulation from
xpetools and the .slx from xpefiles. So I would like to use a custom
component.

My component references this file, the local repository was created in the
SLD dir with a copy of the file, and this repository directory was specified
in Component Designer. This mirrors the procedure in Sean's "Windows XP
Embedded Advanced" book for the MSPAINT component example. When I add the
component to a runtime cfg TD produces this:

Warning 1121: Can not find the resource mpnotify.exe for {component
name}

My only solution so far is to add mpnotify.exe to the Extra Files Folder
that is specified in Tools > Options > [Build] > Extra Files Folder. That
seems to work.

Any ideas how to include this file as a component? Is it safe to copy
mpnotify.exe into a ./repository folder under my SLD as usual, or will that
fail because mpnotifiy.exe already exists in an official xpe repository?

Thanks,
 
M

Mike Warren

jimt said:
My only solution so far is to add mpnotify.exe to the Extra Files
Folder that is specified in Tools > Options > [Build] > Extra Files
Folder. That seems to work.

Any ideas how to include this file as a component? Is it safe to
copy mpnotify.exe into a ./repository folder under my SLD as usual,
or will that fail because mpnotifiy.exe already exists in an official
xpe repository?

I've done similar things to create small components that include only
some of the binaries and had no problems either using the Extra Files
folder or a custom repository.
 
J

jimt

Hi Mike,

I agree, I have done this before too. But it did not work when
mpnotofiy.exe was used. Maybe an executable in the system32 directory is
somehow being blocked from a repository addition somehow. Maybe the
database manager checksums the file and blocks it because it is a windows os
file?

If you have time can you try building this very simple component, with just
this one file, and see if you can add it to a new project in TD? It only
takes a few minutes to build the obj, and the repository can be removed
using the database manager after the test is done.

Maybe Rollup 1.0 has a bug, and that is what I am using...

Bye,

--
jimt


Mike Warren said:
jimt said:
My only solution so far is to add mpnotify.exe to the Extra Files
Folder that is specified in Tools > Options > [Build] > Extra Files
Folder. That seems to work.

Any ideas how to include this file as a component? Is it safe to
copy mpnotify.exe into a ./repository folder under my SLD as usual,
or will that fail because mpnotifiy.exe already exists in an official
xpe repository?

I've done similar things to create small components that include only
some of the binaries and had no problems either using the Extra Files
folder or a custom repository.
 
M

Mike Warren

jimt said:
If you have time can you try building this very simple component,
with just this one file, and see if you can add it to a new project
in TD? It only takes a few minutes to build the obj, and the
repository can be removed using the database manager after the test
is done.

I created a test component and added it to my current project. The file
was in my system32 folder after building the image:

www.mike-warren.net/play/MpnotifyTest.zip

When you add this component to TD does the file size show correctly or
does it show as 0 bytes?

I have had a strange problem for some time where files will not import
using CDM unless I specify the physical path to the repository instead
of the UNC one. This problem is intermittent and I haven't been able to
work out what causes it.

For example, I needed to create a new repository root called:
E:\Windows Embedded Data\Repositories in addition to share
\\NOTEBOOK\Repositories\

It I select this physical root when importing it works every time but
if I select the UNC one it fails about half the time.

Maybe Rollup 1.0 has a bug, and that is what I am using...

I'm using rollup 1 too but having so many problems trying to get a
working image of a small size that I'm considering going back to FP2007.

I'll persevere for a couple more days.
 
J

jimt

Hey Mike,

Please give yourself a big pat on the back, as your example showed me what I
was doing wrong. Turns out that Sean's MSPAINT component example (in his
book, in Chapter 6) was missing a key step. He was not associating the
created component with the repository that was created in his example. Here
is what I found...

I went back to my SLD in CD, clicked on the component, and found the
repository listed as "unknown". Your example had this field filled in. I
filled mine in, selecting the repository name that I had created earlier.
Now TD adds all 24,576 bytes of mpnotify.exe when the component is added to
a config. Ya Hooo!

BTW normally I look at docs before posting questions, but the help for
custom components is damaged in Rollup 1.0. If you click on the Component
Authoring page in the XPe Component Designer Guide, the links for Creating a
Component thru Creating a component from a REG file are not listed with
hyperlinks. Seems like the online help gets worse with each new release.
At FP2007 they took out many of the dependency listings. But I digress,

Thanks very much for the example and for helping me to solve this problem.
It all makes sense now.

Bye,
 
M

Mike Warren

jimt said:
Please give yourself a big pat on the back, as your example showed me
what I was doing wrong.

I'm glad I was able to help. It's a lot of "the blind leading the
blind" around here at the moment. :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top