-assemblies parameter

Posted by Admin on 24-Jul-2008 08:27

The -assemblies parameter instructs the progress runtime and compiler to use a different directory to search for the assemblies.xml file and also custom assemblies (that are not registered in the GAC).

Works fine here!

But how can I get visibility to these custom assemblies from the class viewer? Also it looks like I still need a copy of the assemblies.xml file in the project root folder. Is OEA supposed to find the directory specified by the -assemblies parameter?

All Replies

Posted by Thomas Mercer-Hursh on 24-Jul-2008 10:58

Methinks you posted this on the wrong forum since no one can admit to knowing the answer here.

Guess they moved it!

Posted by Matt Baker on 24-Jul-2008 11:47

Mike,

For projects, OEA looks at the startup parameters specified in the project properties. The project will use the assemblies.xml file located in the directory specified by the -assemblies parameter. This affects visual designer as well as the class browser since the class browser gets its list of assemblies from the project. If you don't specify -assemblies in the "Startup parameters" field then the project will just look in the root folder of the project.

In addition, the class browser has an icon in its toolbar called "Add External Resources". This allows you to pick an assembly that the class browser will show even if the assembly isn't actually referenced by any of the projects.

For launch configurations, the -assemblies parameter will be picked up by the project if the project is using an assemblies file. Otherwise you can override it by specifying a specific -assemblies directory in the launch config dialog on the startup tab.

Message was edited by:

Matthew Baker

Posted by Admin on 24-Jul-2008 14:43

Hi Matt,

For projects, OEA looks at the startup parameters

specified in the project properties. The project

will use the assemblies.xml file located in the

directory specified by the -assemblies parameter.

This affects visual designer as well as the class

browser since the class browser gets its list of

assemblies from the project. If you don't specify

-assemblies in the "Startup parameters" field then

the project will just look in the root folder of the

project.

I guess I have an issue here. My -assemblies parameter was pointing to a directory (Assemblies) underneath the project root using the full path. I could compile everything, but the class browser did not show a single class! I then created a copy of the assemblies.xml file (leaving me with two copies of that file for this test) and after restarting OEA, the class browser was showing the classes.

Posted by Jeff Ledbetter on 05-Aug-2008 19:11

What are the rules for using the -assemblies parameter?

In my testing, if I specify a -assemblies parameter and point to a non-project directory, I get an error "assemblies.xml not found.." when the project restarts. If one does exist, there is no error, but the file itself does not get updated when a new reference is added to the form and saved.

So.. what is the -assemblies parameter for and how/when should it be used? For compiling a deployment? Would this parameter realistically be used in a development environment?

Posted by Simon de Kraa on 06-Aug-2008 01:53

You need an assemblies.xml file to tell Progress where to locate the assemblies for example when I have an ABL program that uses the Advanced GUI control UltraWinGrid you need an assemblies.xml file that contains the correct reference.

I you don't specify the -assemblies parameter then Progress will look for an assemblies.xml file in the current working directory.

Posted by Jeff Ledbetter on 06-Aug-2008 09:21

Thanks Simon. I understand that part.

What I don't understand is why it doesn't get updated when using the -assemblies startup parameter after a control is added. This results in an "unable to parse" error when opening a form after my project is restarted because the referenced assembly was not added to my assemblies.xml.

It seems odd to me that we cannot have better control over the location of the assemblies.xml file. Since the assemblies.xml is required for compilation and editing (it is basically part of your source), the fact that it can only reside in the project root is frustrating.

Posted by rbf on 06-Aug-2008 10:15

Hi Jeff,

I have not tested this but if what you say is true you should log it as a bug.

I sure see the advantages of centralizing assemblies files.

As a side note, we have noticed that a shared assemblies.xml file (used in the same project by multiple developers on the network) does not get updated either. Might that be what is hitting you? I am not sure if this is a bug, but it is surely nasty that there is no message indicating that the update failed.

-peter

Posted by Jeff Ledbetter on 06-Aug-2008 10:23

Hi Peter.

That sounds similar to what I am seeing. Although it's not shared, it does not get updated. The only time the assemblies.xml gets updated automatically is when it's in the project root with no usage of -assemblies in the startup.

Posted by rbf on 06-Aug-2008 10:34

I suggest you log your bug and I log mine.

Posted by Simon de Kraa on 06-Aug-2008 12:06

Thanks Simon. I understand that part.

Of course... Sorry about that.

BTW

I could reproduce your problem...

This thread is closed