PLC-Projekte kompilieren

Einzelne Projekte innerhalb einer TwinCAT-Solution lassen sich gezielt über SolutionBuild.BuildProject kompilieren, ohne die gesamte Solution neu zu bauen. Bevor BuildProject aufgerufen wird, muss die Zielplattform über ConfigurationManager.ActiveTargetPlatform auf die gewünschte Konfiguration gesetzt werden. Das Ergebnis ist über SolutionBuild.LastBuildInfo abrufbar: 0 bedeutet Erfolg, jeder andere Wert zeigt einen Fehler an.

Voraussetzungen

PowerShell Beispiel

$sln = $dte.Solution
$sysMan = $sln.Projects.Item(1).Object

# Compile SysMan project using the SolutionBuild interface
$sysManProject = $dte.Solution.Projects.Item(1)
$sysManProjectPath = $sysManProject.FullName
$sysMan.ConfigurationManager.ActiveTargetPlatform = "TwinCAT RT (x64)"
$sln.SolutionBuild.BuildProject("Release|TwinCAT RT (x64)", $sysManProjectPath, $true)

# Compile SysMan-Project with BuildTargetPlatform command
$sysMan.BuildTargetPlatform("TwinCAT RT (x64)") 

# Compile PLC project (path to .plcproj file)
$plcProjectPath = "C:\Projects\MyProject\PLC1\PLC1.plcproj"
$sysMan.ConfigurationManager.ActiveTargetPlatform = "TwinCAT RT (x64)"
$sln.SolutionBuild.BuildProject("Release|TwinCAT RT (x64)", $plcProjectPath, $true)

# Check result (0 = success)
$lastBuildInfo = $sln.SolutionBuild.LastBuildInfo
if ($lastBuildInfo -ne 0) {
    Write-Error "Build fehlgeschlagen"
}

C# Beispiel

EnvDTE.Solution sln = dte.Solution;

string plcProjectPath = @"C:\Projects\MyProject\PLC1\PLC1.plcproj";

systemManager.ConfigurationManager.ActiveTargetPlatform = "TwinCAT RT (x64)";
// Third parameter: true = wait until build is complete
sln.SolutionBuild.BuildProject("Release|TwinCAT RT (x64)", plcProjectPath, true);

int result = sln.SolutionBuild.LastBuildInfo; // 0 = success
PLC-Projekte kompilieren 1:

Der erste Parameter ist die Build-Konfiguration, z. B. "Release|TwinCAT RT (x64)" oder "Debug|TwinCAT RT (x64)". Der dritte Parameter true blockiert den Aufruf, bis der Build abgeschlossen ist. LastBuildInfo != 0 bedeutet Fehler. Die genauen Fehlermeldungen stehen in der Error-List des DTE.

PLC-Projekte kompilieren 2:

Bevor über das SolutionBuild-Interface des DTE ein Build gestartet wird, muss über den System Manager die Zielplattform auf die entsprechende Konfiguration gesetzt werden. Andernfalls ist kein sauberer Build möglich. Eine vollständige Übersicht der gültigen Zielplattformen (Betriebssystem, Prozessor, PE/ELF-Format) bietet die offizielle TwinCAT Platform Matrix.