Hinweis: Der originale Beitrag ist hier zu finden:
http://delphi-notes.blogspot.com/200...or-net-20.html
Bei einem Setup einer Make-File fiel mir gestern auf, dass der DCCIL Compiler (Delphi.NET Kommandozeilen Compiler) vom Borland Developer Studio 2006 einen Compilerschalter
clrversion hat. Und er funktioniert, hier ein einfachstes Beispiel, der Rest ist dann Eure Sache
Hier erst einmal der Code der
DPR-Datei:
Delphi-Quellcode:
program SimpleSampleNET2;
{$APPTYPE CONSOLE}
uses
System.Text;
begin
System.Console.BackgroundColor := ConsoleColor.Blue;
end.
Zugegeben, nichts Spannendes, aber dennoch ist da etwas dabei, dass eine Consolenanwendung so unter .NET 1.1 nicht kann. Die Klasse
Console unterstützt Hintergrundfarben erst ab .NET 2.0. Entsprechend dankt es uns der Delphi.NET Compiler mit folgenden Hinweisen:
Code:
[Pascal Error] SimpleSampleNET2.dpr(10): E2003 Undeclared identifier: 'BackgroundColor'
[Pascal Error] SimpleSampleNET2.dpr(10): E2003 Undeclared identifier: 'ConsoleColor'
[Pascal Error] SimpleSampleNET2.dpr(10): E2066 Missing operator or semicolon
.
Also los, ab zur Kommandozeile und das Ganze mal von Hand kompilieren. Ein erster Versuch sah bei mir so aus:
Code:
dccil -
CC -NSC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 --clrversion:v2.0.50727 --no-config SimpleSampleNET2.dpr
Der Compiler meldete Erfolg beim Laden vom .NET Framework Version 2.0.50727, leider aber konnte er die
Unit Borland.Delphi.System für dieses Framework nicht finden. Diese muss also auch für .NET 2.0 kompiliert werden.
Kopiere die Datei
$(BDS)\source\dotNet\rtl\Borland.Delphi.System.pas in das Verzeichnis der "komplexen" Konsolenanwendung und führe folgenden Befehl aus:
Code:
dccil -
CC -NSC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 --clrversion:v2.0.50727 --no-config -Q -M -y -Z -$D- Borland.Delphi.System.pas
. Damit wird erfolgreich die System-
Unit für .NET 2.0 kompiliert!
Jetzt noch einmal den ersten Befehl:
Code:
dccil -
CC -NSC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 --clrversion:v2.0.50727 --no-config SimpleSampleNET2.dpr
Und seht da, Delphi hat es erfolgreich kompiliert. Jetzt kurz mal das Ergebnis aufrufen und der Erfolg wird in der Kommandozeile sichtbar. Die Hintergrundfarbe hat sich geändert, vorausgesetzt, diese war nicht vorher schon in Blau.
Zum Test habe ich das Ganze in eine VM kopiert, welche nur das .NET 2.0 Framework hat (kein 1.1) und es läuft ohne Probleme. In einer VM mit ausschließlich .NET 1.1 läuft die Anwendung nicht korrekt, da diese die entsprechenden Eigenschaften nicht kennt
...

...