Difference between revisions of "Install"

From Team Developer SqlWindows Wiki
Jump to: navigation, search
m
(Added tip 'ProfUIS283u_td.dll vs. ProfUIS283u-RDE.dll')
Line 66: Line 66:
 
C:\Program Files\TD Runtime\5.1        <- contains TD 5.1 runtime files, not in system-PATH, no SQL.INI
 
C:\Program Files\TD Runtime\5.1        <- contains TD 5.1 runtime files, not in system-PATH, no SQL.INI
 
</pre>
 
</pre>
 +
 +
<!------------------------------------------------------------------------------------------------------------------------------>
 +
{{TipHeader|ProfUIS283u_td.dll vs. ProfUIS283u-RDE.dll}}
 +
Since '''Team Developer 5.2''', those two DLLs are included in the runtime files.<br/>
 +
First, I thought, that the second file, '''ProfUIS283u-RDE.dll''', is not needed as everything worked without it.<br/>
 +
The IDE and the compiled applications.<br/><br/>
 +
But then, I recently found out, that '''Report Builder''' needs it.<br/><br/>
 +
So, if you don't have Report Builder reports in your application, you don't need ProfUIS283u-RDE.dll to be deployed.<br/>
 +
But as soon as you have RB-reports, you'll have to include it.<br/>
 +
<br/>
 +
By the way, I have ''absolutely no idea'', why they built two quite similar DLLs!

Revision as of 10:59, 21 July 2010

This page covers installation and deployment Tips & Tricks

Contents


Pointer2.png Coexisting runtime versions Pointer.png

When deploying applications developed using Team Developer, you also have to deploy the correct TD runtime version to your clients PC. If you have more than one project developed using any Team Developer Version, you may face the need to deploy more than one TD runtime version at a time because keeping every project in the same TD version can be impossible. There are several ways to solve this problem.

  1. Deploy into the same directory
    This is the way my company used to deploy the TD runtime versions until TD 5.1 came. As lots of the TD files have the version in their filenames, copying them together into the same directory worked.
    We had the versions of TD 1.1, TD 1.5 and TD 3.1 installed in parallel. For the files, that have equal names, we tried if the newer versions worked for TD 1.1 and TD 1.5 applications too. We were glad, that it worked.
    Important! Mixing TD 5.1 files with older versions doesn't work! Only files of ANSI-TD-versions may be mixed in one directory!
  2. Deploy into the application directory
    This might be a solution for you, but personally, I don't like it very much. As the TD runtime is just a bunch of DLL files, you may copy them completely into your applications installation directory. So every applications has it's own TD runtime.
    Important! Verify that your application's installation directory is not enlisted in the system-PATH. You may get some DLL's loaded from different places which may cause problems!
  3. Deploy using different directories and start batches
    As you can read at the end of the first described way, mixing TD 5.1 files with older TD files does not work. Especially the native database routers, which all have the same name in every version, make problems. To solve this, I decided to create multiple directories for the files by still having only one SQL.INI file on the system. As TD applications need cdlli??.dll on startup, you have to ensure that they can be found. This may be done using start batches like this one.
    REM Filename: run_td42_app.cmd
    set PATH=<TD 4.2 Runtime Directory>;%PATH%;
    start td42_app.exe
    

    This will extend you system-PATH temporarily with the TD runtime files directory and start the application. You'll see a console window flickering by which happens when the batch starts. If this doesn't bother you, it will be an easy way for solving this.
    Pros: simple, also works from command prompt
    Cons: flickering console window, file has to be run with full path if not in system-PATH

  4. Deploy using different directories and "App Paths"
    If the flickering console window bothers you, this way could be the one of your choice. Windows Explorer has the functionality of "App Paths" which allow you to define a different search path for every single EXE file in the system. It may look like this for the example above.
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\td42_app.exe]
    @="C:\\Program Files\\<application installation directory>\\td42_app.exe"
    "Path"="<TD 4.2 Runtime Directory>"
    

    Pros: no flickering console window, just running "td42_app" from "Start->Run" finds the application, even if it's not in the system-PATH
    Cons: doesn't work if you run the EXE from the command prompt


For all solutions keep SQL.INI in mind. TD will search for SQL.INI in the system-PATH, so keep track of all SQL.INI files on your system. Having multiple SQL.INI files may cause problems if your application finds any SQL.INI in another directory than the one where your SQL.INI-to-use is in. In my setup, I decided to place the SQL.INI in my "TD runtimes base" directory, and using "App Paths" for the applications.
The directory structure looks like this:

C:\Program Files\TD Runtime             <- contains SQL.INI, added to system-PATH
C:\Program Files\TD Runtime\3.1         <- contains TD 3.1 runtime files, not in system-PATH, no SQL.INI
C:\Program Files\TD Runtime\5.1         <- contains TD 5.1 runtime files, not in system-PATH, no SQL.INI

Pointer2.png ProfUIS283u_td.dll vs. ProfUIS283u-RDE.dll Pointer.png

Since Team Developer 5.2, those two DLLs are included in the runtime files.
First, I thought, that the second file, ProfUIS283u-RDE.dll, is not needed as everything worked without it.
The IDE and the compiled applications.

But then, I recently found out, that Report Builder needs it.

So, if you don't have Report Builder reports in your application, you don't need ProfUIS283u-RDE.dll to be deployed.
But as soon as you have RB-reports, you'll have to include it.

By the way, I have absolutely no idea, why they built two quite similar DLLs!