Upgrading a component

G

Guest

Hi All,
I've created a component via Component Designer. When I created it I also
created a repository folder on my local disk and then manually copied the
file that is represented by the component over to that repository. I then
released the component, built an image and everything was fine. I have now
upgraded the file so I want to also upgrade the component to use the new
file. I went through the Edit->Upgrade step and then copied the new file over
to the repository. But when I build images with the upgraded component it
still uses the old fle. BTW: When I import the component the "copy repository
files to root" is checked.

I obviously don't understand how this works. Could someone please give me a
few hints.
Thanks in advance,
Dale
 
K

KM

Dale,

Why did you create a repository folder manually?
You should create a repository in your component SLD and associate the component with the Repository using CD.
http://msdn.microsoft.com/library/en-us/xpehelp/html/cdtskInsertingNewRepositoryObject.asp

Then when you import SLD again (upgrading the component in database) and have the "Copy repository files ..." checkbox set it will
automatically update the repository files replacing them by the ones you've got set up in your component's File section (usually, if
you did not change SrcPath extended properties of files in the component, it will be all files from the same directory where the SLD
is located).
 
G

Guest

Just to add to this I noticed that with CMI I was getting the following error
message:
"Component Databasse manager can not retrieve data from component database.
Looking in the Event Viewer I see an error message:

The CMI encountered the following error: 0x80042343 (-2147212477) A
Utilities method referenced a non-existent registry key or value.

\utilitiesc-1259

Any ideas?

Thanks,
Dale
 
G

Guest

I don't understand. In the the first two steps of the article that you
pointed to seems to specify the exact steps that I followed-- create a folder
and then copy the component files into it. And then of course I associated
the repository with the SLD object otherwise the import would fail.

Any other thoughts.

Thanks,
Dale
 
S

Slobodan Brcin \(eMVP\)

Dale,

Did you used component database manager to import your new component to DB?
Also go to Shared repositories folder and find guid that belong to your repository. Then check if your new file is present there
after the import.

Regards,
Slobodan
 
K

KM

Dale,

Sorry, I misunderstood you at first place. I thought you were saying you created the Repository folder under the XPe Repository
directory manually.

Anyway, when you copied new files to the folder where you had old files, did you use CDM (COmponent Database Manager) to import
component again? That is how you "upgrade" the component in the database. You if set the "Copy repository files to..." checkbox, the
repository files will be updated in real repository (under \WIndows Embedded Data\Repositores directory) that is used during the
build in TD.
If you use network path to the XPe Database Server, make sure you have write permissions on the Repository share for the account you
logged in.

KM
 
G

Guest

I do use the Component database manager to import the component and the
shared repository does (did) contain the updated files.

I deleted the shared repository and essentially started over and now
everything works. However I suspect that the problem will come back. Perhaps
I am doing something fundementally wrong.

Below are the steps that I am following to create the repository initially:

I have two components. When I create the first .sld I also "add" a
repository and a package. Then I reference repository via the "repository"
button on the "Properties" page of that .sld. When I create the second .sld I
don't add another repository but reference (agian via the "repository" button
on the "Properties" page) the one I created for the first component. Does
this sound correct?

One thing that I noticed is that the shared repository is allows marked as
read-only. If I change this attribute the Component Database Manager seems to
reset it. Does this sound right? My repository is local.

Thanks again for all your help.
Dale
 
S

Slobodan Brcin \(eMVP\)

Hi Dale,

This is perfect explanation that reveals a flaw.
You can associate as many component as you want to certain repository if all components are in one sld file.

Well you can do that in different files as well and it will work with exception that only SLD which contain actual repository
definition will copy repository file during the import.
Other components will be able to use files from repository but they won't be able to copy files during the import.
So you can place all components in one file.
Or you can do dual import of component that contain repository and components without it.

Regards,
Slobodan

PS:
You can copy same repository in SLD file but this could be a maintainance nightmare.
 
G

Guest

Thanks so much Slobadan and KM. Things are working now and I understand the
respository concept a lot better.

Dale
 

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