If you encounter a Visual Studio crash / TwinCAT XAE crash it usually looks like this or it may be even closed without message box:
"Microsoft Visual Studio has stopped working"
There are some solutions for known problems:
- Do not use Visual Studio 2010 and Visual Studio 2013 anymore. Update to a newer Visual Studio version that is supported by your TwinCAT version (see below). BCI recommends to use TcXaeShell which is currently a Visual Studio Shell 2017 labeled by Beckhoff. Since now there is no separate installer for TcXaeShell. Therefore you should select installation of TcXaeShell during setup of TwinCAT 3.1.4024. If you have already the latest TwinCAT version without TcXaeShell try to start the Remote Manager setup.
A project can be updated by opening it manually with the new Visual Studio / TcXaeShell version. Then select the solution in the solution explorer and explicitly save it:
Following Visual Studio versions are supported:
- TwinCAT 3.1.4016.28 supports up to Visual Studio 2013, no TcXaeShell
- TwinCAT 3.1.4020.28 supports up to Visual Studio 2015, no TcXaeShell
- TwinCAT 3.1.4020.56 supports up to Visual Studio 2019
- TwinCAT 3.1.4022 supports up to Visual Studio 2019
- TwinCAT 3.1.4024 supports up to Visual Studio 2019
- If you still want to use Visual Studio 2013 you must install Visual Studio 2013 Update 5. This update solves many known crash causes. The update has several gigabyte because it also installs some other Microsoft components like Windows Phone SDK.
More information:
https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2013-update5-vs
- The file path of a POU plus the name of the method or SFC action must not be longer than 222 characters (or at least TwinCAT 3.1.4024.47 must be used).
- SFC chains that have been edited with TwinCAT 3.1.4024 cannot be edited with TwinCAT 3.1.4022 anymore. If a TcPOU file contains the GUID 6ecff51c-9b8f-4338-aab0-67c2b31b07e9 TwinCAT XAE 3.1.4022 will crash when editing this SFC functionblock.
- Window docking in Visual Studio causes a crash:
This can be fixed depending on your Visual Studio version:
-
TcXaeShell
- Close TcXaeShell / Visual Studio
- Open the path C:\Program Files (x86)\Beckhoff\TcXaeShell\Common7\IDE
- Create a backup of the file TcXaeShell.exe.config
- Start Notepad++ with administrator rights ("run as administrator")
- Open TcXaeShell.exe.config
- Search for the key word <AppContextSwitchOverrides
- Add the red code (do not forget the semicolon!):
<AppContextSwitchOverrides value="Switch.System.Threading.ThrowExceptionIfDisposedCancellationTokenSource=false;Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox=false;Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false;Switch.System.Windows.Interop.MouseInput.OptOutOfMoveToChromedWindowFix=true;Switch.System.Windows.Interop.MouseInput.DoNotOptOutOfMoveToChromedWindowFix=true" />
- Save and close the file
- Docking windows should work again without crashing
- Visual Studio 2019
Use update function of Visual Studio
- Visual Studio 2017
Use update function of Visual Studio
- Visual Studio 2015
See description of TcXaeShell, but instead of TcXaeShell.exe.config edit this file:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe.config
- Visual Studio 2013
See description of TcXaeShell, but instead of TcXaeShell.exe.config edit this file:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe.config
Additionally this file does not yet include an element called AppCOntextSwitchOverrides. That means the whole XML element must be added with the new attributes:
<AppContextSwitchOverrides value="Switch.System.Windows.Interop.MouseInput.OptOutOfMoveToChromedWindowFix=true;Switch.System.Windows.Interop.MouseInput.DoNotOptOutOfMoveToChromedWindowFix=true" />
Ein Absturz von Visual Studio / TwinCAT XAE sieht wie folgt aus oder es wird sogar ohne Meldungsfenster geschlossen:
"Microsoft Visual Studio has stopped working"
Es gibt einige Lösungen für bekannte Probleme:
- Kein Visual Studio 2010 und Visual Studio 2013 mehr verwenden. Auf eine neuere Visual Studio Version aktualisieren, die von der eingesetzten TwinCAT-Version unterstützt wird (siehe unten). BCI empfiehlt TcXaeShell, das aktuell ein von Beckhoff gelabeltes Visual Studio Shell 2017. Bisher gibt es kein separates Setup für TcXaeShell. Deshalb sollte man die TcXaeShell-Installation während der Installation von TwinCAT 3.1.4024 auswählen. Wenn die neueste TwinCAT-Version ohne TcXaeShell bereits installiert ist, kann man ein Remote Manager Setup starten.
Ein Projekt kann aktualisiert werden, indem man es manuell mit der neuen Visual Studio / TcXaeShell Version öffnet. Dann die Projektmappe im Projektmappen-Explorer auswählen und explizit speichern:
Folgende Visual Studio Versionen werden unterstützt:
- TwinCAT 3.1.4016.28 unterstützt bis Visual Studio 2013, kein TcXaeShell
- TwinCAT 3.1.4020.28 unterstützt bis Visual Studio 2015, kein TcXaeShell
- TwinCAT 3.1.4020.56 unterstützt bis Visual Studio 2019
- TwinCAT 3.1.4022 unterstützt bis Visual Studio 2019
- TwinCAT 3.1.4024 unterstützt bis Visual Studio 2019
- Wenn Sie weiterhin Visual Studio 2013 einsetzen wollen, installieren Sie Visual Studio 2013 Update 5. Dieses Update behebt viele Absturzursachen. Das Update ist mehrere Gigabyte groß, weil es auch andere Microsoft Komponenten wie Windows Phone SDK installiert.
Weitere Informationen:
https://docs.microsoft.com/de-de/visualstudio/releasenotes/vs2013-update5-vs
- Der Dateipfad einer POU plus Name der Methode oder SFC-Aktion darf nicht länger als 222 Zeichen sein (oder es muss mindestens TwinCAT 3.1.4024.47 verwendet werden).
- SFC Schrittketten, die mit TwinCAT 3.1.4024 bearbeitet wurden, können nicht mehr mit TwinCAT 3.1.4022 bearbeitet werden. Wenn eine TcPOU-Datei die GUID 6ecff51c-9b8f-4338-aab0-67c2b31b07e9 enthält, stürzt TwinCAT XAE 3.1.4022 ab beim Bearbeiten dieses SFC Funktionsblocks.
- Das Andocken von Fenstern (Tabs) in Visual Studio verursacht einen Absturz:
Dies kann in Abhängigkeit der Visual Studio Version behoben werden:
-
TcXaeShell
- TcXaeShell / Visual Studio schließen
- Den Pfad C:\Program Files (x86)\Beckhoff\TcXaeShell\Common7\IDE öffnen
- Eine Sicherung der Datei TcXaeShell.exe.config erstellen
- Notepad++ mit Administrator-Rechten starten ("run as administrator")
- TcXaeShell.exe.config öffnen
- Nach dem Schlüsselwort <AppContextSwitchOverrides suchen
- Den roten Code hinzufügen (Semikolon nicht vergessen!):
<AppContextSwitchOverrides value="Switch.System.Threading.ThrowExceptionIfDisposedCancellationTokenSource=false;Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox=false;Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=false;Switch.UseLegacyAccessibilityFeatures.3=false;Switch.System.Windows.Interop.MouseInput.OptOutOfMoveToChromedWindowFix=true;Switch.System.Windows.Interop.MouseInput.DoNotOptOutOfMoveToChromedWindowFix=true" />
- Die Datei speichern und schließen
- Andocken von Fenstern sollte wieder funktionieren ohne abzustürzen
- Visual Studio 2019
Update-Funktion von Visual Studio verwenden
- Visual Studio 2017
Update-Funktion von Visual Studio verwenden
- Visual Studio 2015
Siehe Beschreibung von TcXaeShell, aber anstatt TcXaeShell.exe.config diese Datei bearbeiten:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe.config
- Visual Studio 2013
Siehe Beschreibung von TcXaeShell, aber anstatt TcXaeShell.exe.config diese Datei bearbeiten:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe.config
Zusätzlich enthält diese Datei noch nicht das Element namens AppContextSwitchOverrides. Das bedeutet, das ganze XML-Element mit den neuen Attributen muss hinzugefügt werden:
<AppContextSwitchOverrides value="Switch.System.Windows.Interop.MouseInput.OptOutOfMoveToChromedWindowFix=true;Switch.System.Windows.Interop.MouseInput.DoNotOptOutOfMoveToChromedWindowFix=true" />