Vorhandene Konfiguration öffnen und aktivieren

Um eine vorhandene TwinCAT-Konfiguration zu aktivieren, werden drei Schritte ausgeführt: Eine DTE-Instanz wird erstellt, die Solution wird geöffnet, und anschließend werden ActivateConfiguration und StartRestartTwinCAT auf dem ITcSysManager-Objekt aufgerufen.

Das ITcSysManager-Objekt wird aus dem ersten Projekt der Solution bezogen. Die ProgID bestimmt, welche Visual-Studio-Version gestartet wird. Dem Projekt müssen Verweise auf „Microsoft Developer Environment" und „Beckhoff TwinCAT XAE Base" hinzugefügt sein.

Visual Studio Version

ProgID

Visual Studio 2022

VisualStudio.DTE.17.0

Visual Studio 2019

VisualStudio.DTE.16.0

Visual Studio 2017

VisualStudio.DTE.15.0

TcXaeShell 2022

TcXaeShell.DTE.17.0

C#-Beispiel

Type t = System.Type.GetTypeFromProgID("VisualStudio.DTE.17.0");
EnvDTE.DTE dte = (EnvDTE.DTE)System.Activator.CreateInstance(t);
dte.SuppressUI = false;
dte.MainWindow.Visible = true;

EnvDTE.Solution sol = dte.Solution;
sol.Open(@"C:\Temp\SolutionFolder\MySolution1\MySolution1.sln");

EnvDTE.Project pro = sol.Projects.Item(1);
ITcSysManager sysMan = pro.Object;

sysMan.ActivateConfiguration();
sysMan.StartRestartTwinCAT();

PowerShell-Beispiel

$prjDir = "C:\tmp\TestSolution\"
$prjName = "TestSolution.sln"
$prjPath = $prjDir += $prjName
$dte = new-object -com VisualStudio.DTE.17.0
$dte.SuppressUI = $false
$dte.MainWindow.Visible = $true

$sln = $dte.Solution
$sln.Open($prjPath)

$project = $sln.Projects.Item(1)
$systemManager = $project.Object

$systemManager.ActivateConfiguration()
$systemManager.StartRestartTwinCAT()