User Tools

Site Tools


the_project_copy_system.htm
Navigation:  Project System >====== Project Copy System ====== Previous pageReturn to chapter overviewNext page

Whenever you execute a build all required dynamic link libraries (DLLs) will be copied to the directory where that EXE is located.

In the following list the term “referenced project” means any referenced project that has the Copy Child Dlls to output directory property set to Default or Always (visible in the Properties pad when you highlight any referenced project) and has the Copy Referenced Dlls to output property set to TRUE (which is on the Compiling tab of the Project Property window).

ProjectCopy1

ProjectCopy2

The system finds the DLLs based on:

·Referenced projects that have Copy Child Dlls to output directory set to Default or Always

·Library (LIB) files in this project that have the Copy Dll to output directory set to Default or Always

·Library (LIB) files in a referenced project that have the Copy Dll to output directory property set to Default or Always

·File drivers included in the project

·File drivers included in a referenced project

·Library (LIB) files included via PRAGMA statements in the code for this project

·Library (LIB) files included via PRAGMA statements in the code for a valid referenced project.

·Files in the project with the Copy to output directory property set to Default or Always

·Files with the Copy to output directory property set to Default or Always in a referenced project

·The current RTL DLL (c%V%run.dll)

Note: From the main menu in the IDE you can use the Tools→Open Configuration Directory in order to view/edit any of these files:

LibIgnoreList.xml
LibAlwaysCopyList.xml

LibCopyList.xml

LibPrjIgnoreList.xml

You also have the option to place the LibAlwaysCopyList.xml, LibIgnoreList.xml, and LibCopyList.xml in the directory where your Project is located.  If these files exist local to the Project the IDE uses the local copies, instead of the default files located in the user data folder.

Open_Config_Directory

LibIgnoreList.xml

The LibIgnoreList.xml file is used for library files that do not have a matching DLL. The LibIgnoreList.xml file is located in the

Application Data\SoftVelocity\Clarion\versionNumber directory. For any .LIB file listed the Project system won't report a warning that the

'matching' DLL was not found.

LibCopyList.xml

Multi-copy Feature

You can configure the system to copy multiple files when a DLL file is being copied to the Output folder.

This option is controlled via the LibCopyList.xml file located in the Clarion application folder (%AppData%\SoftVelocity).

This file uses the following structure:

<;ProjectCopyList>

 <;MultiCopy company=“company_name” version=“version_number”>

   <;dll name=“name_of_dll_file”>

     <;alsoCopy name=“name_of_file_to_copy” />

   <;/dll>

 <;/MultiCopy>

<;/ProjectCopyList>

You can have one of more MultiCopy child elements of the ProjectCopyList element.

The company and version attributes of the MultiCopy element are optional. Third parties should use these attributes so they can find their entries in this file and can upgrade the file when necessary.

The name attribute of the dll element is mandatory. It gives the name of the dll (without path) that, when copied, causes the files in the alsoCopy child elements to be copied.

You can have one of more alsoCopy child elements of the dll element. The “name=”  specifies the name of the file (without path) that is copied when the parent DLL is copied.

Example:

The default file (created by the project system the first time it is needed) looks like this:

<;ProjectCopyList>

 <;MultiCopy company=“SoftVelocity” version=“1”>

   <;dll name=“C%V%PRLB.DLL”>

     <;alsoCopy name=“C%V%PRNET.DLL” />

     <;alsoCopy name=“SoftVelocity.ReportPreviewer.dll” />

     <;alsoCopy name=“SoftVelocity.RWClasses.dll” />

     <;alsoCopy name=“SoftVelocity.Clarion.Runtime.Procedures.dll” />

     <;alsoCopy name=“SoftVelocity.Clarion.Runtime.Classes.dll” />

     <;alsoCopy name=“SoftVelocity.Clarion.FileIO.dll” />

     <;alsoCopy name=“ICSharpCode.Core.dll” />

     <;alsoCopy name=“ICSharpCode.SharpDevelop.dll” />

     <;alsoCopy name=“ICSharpCode.SharpDevelop.Dom.dll” />

     <;alsoCopy name=“Clarion.asl.dll” />

     <;alsoCopy name=“Clarion.Core.dll” />

     <;alsoCopy name=“Clarion.Options.dll” />

     <;alsoCopy name=“ClarionDrv.dll” />

     <;alsoCopy name=“DataDictionary.dll” />

     <;alsoCopy name=“DataDictionaryFile.dll” />

     <;alsoCopy name=“SoftVelocity.DataDictionary.Design.dll” />

     <;alsoCopy name=“log4net.dll” />

     <;alsoCopy name=“Aga.Controls.dll” />

     <;alsoCopy name=“c%V%asl.dll” />

     <;alsoCopy name=“c%V%cbc.dll” />

     <;alsoCopy name=“c%V%tps.dll” />

     <;alsoCopy name=“c%V%def.dll” />

     <;alsoCopy name=“c%V%cpxml.dll” />

     <;alsoCopy name=“c%V%asc.dll” />

     <;alsoCopy name=“c%V%dos.dll” />

   <;/dll>

 <;/MultiCopy>

<;/ProjectCopyList>

The example  above causes all the dlls that are needed for the new Report Writer interface to be copied to the output folder.

LibAlwaysCopyList.xml

The LibAlwaysCopyList.xml file is located in Application Data\SoftVelocity\Clarion\versionNumber directory. You can add entries here

to copy flles that are not directly referenced in the project, but are required by a LIB used in the project.

For example the default LibAlwaysCopyList file has an entry to copy

the Sqlite3.dll (sqlite3.dll is the database engine) which is required by the Clarion Sqlite driver.

<;AlwaysCopyList>

<;ForceCopy company=“SoftVelocity” version=“1”>

<;lib name=“C%V%PRLB.LIB”>

<;alsoCopy name=“C%V%PRLB.dll” />

<;alsoCopy name=“c%v%run.dll” />

<;/lib>

  <;lib name=“ClaLITL.LIB”>

     <;alsoCopy name=“sqlite3.dll” />

   <;/lib>

<;lib name=“C%V%RUNEXT.LIB”>

<;alsoCopy name=“c%v%runext.dll” />

<;/lib>

<;/ForceCopy>

<;/AlwaysCopyList>

LibPrjIgnoreList.xml

The LibPrjIgnoreList.xml file is located in Application Data\SoftVelocity\Clarion\versionNumber directory. You can add entries here

so that the Project system won't output warnings when it can't find a corresponding DLL to match with the .LIB file.

This is the default contents of the file:

<;Libraries>

<;lib name=“C%V%ENC%X%” />

<;lib name=“C%V%LZWS%X%” />

<;lib name=“C%V%ZLIB%X%” />

<;lib name=“C%V%HTM%X%” />

<;lib name=“CWHH%V%” />

<;lib name=“c60prlbx” />

<;lib name=“ws2_32” />

<;lib name=“Wininet” />

<;/Libraries>

the_project_copy_system.htm.txt · Last modified: 2021/04/15 15:57 by 127.0.0.1