Fixing Simatic IPC547G .NET 3.5 Install Errors on Windows 10 IoT

David Krause11 min read
SiemensTIA PortalTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Fixing Simatic IPC547G .NET 3.5 Install Errors on Windows 10 IoT and Server 2012

The SIMATIC IPC547G rack-mounted industrial PC is shipped with Windows 10 IoT Enterprise 2016/2019 LTSB or Windows Server 2012 R2 images, and Siemens documentation states that the bundle is "ready-to-run" for TIA Portal, WinCC, STEP 7 (V5.x), and WinCC flexible. In practice, the .NET Framework 3.5 feature is disabled in the offline image to reduce the attack surface, and a substantial percentage of field engineers cannot install it on first boot. This article consolidates the field-proven remediation paths: the supplied USB recovery drive, the offline DISM install with an SxS source, the language-pack removal procedure for Server 2012, and the .NET 4.6 uninstall/reinstall workaround. Each method is documented with exact commands, expected error codes, and post-install verification steps.

Critical: TIA Portal V13–V16, STEP 7 V5.6, and WinCC V7.4/V7.5 all require the .NET Framework 3.5 runtime. TIA Portal V17/V18 only requires .NET 4.8, but most legacy installations on an IPC547G still pull STEP 7 V5.6, WinCC flexible 2008 SP5, or WinCC V7, which all fail with "Component .NET 3.5 not found" if the feature is not enabled first.

1. Problem Description

Engineers receive a brand-new IPC547G, power it up, insert the recovery USB or use the pre-installed image, and then attempt to install TIA Portal or WinCC. The installer returns:

  • Component .NET Framework 3.5 (incl. .NET 2.0 and .NET 3.0) could not be installed. Error: 0x800F0906, 0x800F081F, 0x800F0907
  • WinCC setup stops with ".NET cannot be found"
  • STEP 7 V5.6 setup returns Error 1642 ("The installer does not have sufficient privileges to install this package") or Error 1935
  • After enabling the Windows feature manually, the .NET 3.5 option stays grayed out or fails to download from Windows Update

On air-gapped sites (no internet for the IPC), the standard Add/Remove Windows Features wizard times out because the source files are not in the local WinSxS folder, and Windows Update is unreachable.

2. Root Cause Analysis

The base image shipped on the SIMATIC IPC547G (article number 6AG4010-1... variants, see the Siemens Support Entry 109745988) is a stripped Windows 10 IoT Enterprise LTSB image. By default:

  • The NetFx3 feature is disabled and the source payload (\sources\sxs\microsoft-windows-netfx3-ondemand-package.cab) is removed from the local image.
  • Windows Update is configured to a custom Siemens WSUS stub that does not host the .NET 3.5 payload on air-gapped plants.
  • On Server 2012 R2, the .NET 3.5 source is provided by the \sources\sxs folder on the original Microsoft media, which is rarely present on the customer site.

Siemens ships a recovery/installation USB drive in the box that contains an OptionalWindowsFeatures folder with the on-demand cab and a wrapper install.bat that calls DISM against an offline source copied from the bundled media. When the wizard fails, most engineers do not realize the USB is the canonical source.

3. Affected Hardware, OS, and Software Matrix

IPC Model OS Image Build Default .NET 3.5 State Recovery USB Path
SIMATIC IPC547G (Core i5/i7, 6AG4010-1AA/1AB/1AC) Windows 10 IoT Enterprise 2016 LTSB 10.0.14393 Disabled, payload removed DocuAndDrivers/Software/OptionalWindowsFeatures/DotNet35
SIMATIC IPC547G (6AG4010-1BA/1BB) Windows 10 IoT Enterprise 2019 LTSC 10.0.17763 Disabled, payload removed DocuAndDrivers/Software/OptionalWindowsFeatures/DotNet35
SIMATIC IPC547G (6AG4010-1CA) Windows Server 2012 R2 Standard 6.3.9600 Disabled, SxS removed DocuAndDrivers/Software/OptionalWindowsFeatures/DotNet35
SIMATIC IPC547G (6AG4010-1DA) Windows Server 2019 Standard 10.0.17763 Disabled, SxS removed DocuAndDrivers/Software/OptionalWindowsFeatures/DotNet351
SIMATIC IPC477E (panel, 6AV7241-...) Windows 10 IoT Enterprise 2016/2019 10.0.14393/17763 Disabled, payload on USB DocuAndDrivers/Software/OptionalWindowsFeatures/DotNet351
Path note: Some firmware releases label the folder DotNet35 (no service pack); later releases label it DotNet351 (3.5 + 3.5 SP1). Both are functionally equivalent for TIA Portal V13–V17.

4. Prerequisites

  1. Local administrator account on the IPC547G (default Administrator with the password printed on the delivery note).
  2. The original SIMATIC Recovery USB Drive shipped with the unit. Verify the file DocuAndDrivers\Software\OptionalWindowsFeatures\DotNet35\install.bat exists. If missing, request the latest recovery media from Siemens Industry Online Support (SIOS) referencing the MLFB / article number.
  3. Microsoft Windows 10 / Server 2012 installation media (ISO or USB) as an alternate \sources\sxs source if the Siemens USB is unavailable.
  4. 5 GB free disk space on C:\ for staged SxS files.
  5. For Server 2012 R2 only: a working knowledge of lpksetup.exe to remove extraneous language packs before re-install.

5. Solution 1 — Use the Supplied Siemens USB Drive (Recommended)

This is the method Siemens documents and the only one guaranteed to be supported. It does not require internet access.

5.1 Procedure

  1. Insert the SIMATIC recovery USB into a free USB 2.0/3.0 port on the IPC547G.
  2. Open File Explorer and navigate to the USB root.
  3. Browse to \DocuAndDrivers\Software\OptionalWindowsFeatures\DotNet35 (or DotNet351 on later firmware).
  4. Right-click install.bat → Run as administrator.
  5. The script invokes the equivalent of:

    DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /Source:%~dp0sxs /LimitAccess

  6. Wait for the command to finish. Expected return: The operation completed successfully. RestartWindows: true.
  7. Reboot the IPC547G.
  8. After reboot, verify the registry key HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 exists and has Install = 1.

5.2 Expected Log Location

Detailed DISM log: C:\Windows\Logs\DISM\dism.log. Filter for NetFx3 to confirm the feature was sourced from the local SxS rather than Windows Update.

Antivirus interaction: On hardened plant images, real-time AV (Trend Micro, McAfee, Symantec Endpoint) can block DISM.exe. Add C:\Windows\System32\dism.exe and C:\Windows\System32\dismhost.exe to the AV exclusion list before launching the bat file.

6. Solution 2 — Offline DISM Install Using Microsoft Media

Use when the Siemens USB is missing or unreadable. Mount the Microsoft Windows ISO of the matching build and point DISM at its \sources\sxs directory.

6.1 Mount the ISO

From an elevated PowerShell prompt:

$ISO = "C:\Install\Win10_1809_LTSC_64bit.iso"
$Drive = Mount-DiskImage -ImagePath $ISO | Get-Volume | Select -ExpandProperty DriveLetter
Write-Host "Mounted at $Drive"

6.2 Run DISM with /Source

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All \
     /LimitAccess /Source:E:\sources\sxs

Parameter reference:

Switch Purpose
/Online Target the running OS, not an offline image.
/Enable-Feature:NetFx3 Enable the parent .NET 3.5 feature including 2.0/3.0 children.
/All Enable all parent features of NetFx3.
/LimitAccess Do not contact WSUS/Windows Update.
/Source: Path to the SxS folder containing microsoft-windows-netfx3-ondemand-package.cab.

6.3 Error Code Reference

Error Code Meaning Fix
0x800F081F Source files not found in /Source Verify SxS path; ensure matching build number.
0x800F0906 Source could not be downloaded (no internet) and /Source missing Add /Source; ensure WSUS is bypassed.
0x800F0907 Policy blocks the feature Check gpedit.msc → Computer Config → Admin Templates → System → "Specify settings for optional component installation".
0x800F0922 CSI payload missing Rebuild component store with DISM /Online /Cleanup-Image /RestoreHealth.

7. Solution 3 — Language-Pack Removal on Windows Server 2012 R2

Server 2012 R2 images delivered with the IPC547G are frequently pre-loaded with 8–12 MUI language packs. .NET 3.5 install fails on these images because the framework binaries try to bind to locale-specific resources that are not consistent. The fix is to strip the language packs down to en-US only, then run the standard install.

7.1 Procedure

  1. Open an elevated Command Prompt.
  2. List installed packs: lpksetup.exe → Uninstall display languages.
  3. Select all languages except English (United States) and confirm. Wait for the uninstaller to complete (5–15 minutes).
  4. Reboot.
  5. Re-insert the Siemens USB or mount the Microsoft ISO.
  6. Run install.bat from the USB or invoke the DISM command from Section 6.2.
  7. Reboot again.

7.2 PowerShell Equivalent

Get-WindowsCapability -Online | Where-Object {$_.Name -like "Language.*" -and $_.Name -notlike "*en-US*"} | Remove-WindowsCapability -Online
Caveat: If only English is listed but the install still fails, check the regional settings: Control Panel → Region → Administrative → Language for non-Unicode programs. Set to English (United States), reboot, retry.

8. Solution 4 — .NET 4.6 Uninstall/Reinstall Sequence

On Windows 10 IoT Enterprise 2019 LTSC, the image ships with .NET Framework 4.7 pre-installed. Microsoft has documented that the .NET 3.5 install can fail when 4.6+ is already present and the servicing stack is broken. The verified sequence is:

  1. Open Control Panel → Programs and Features.
  2. Uninstall Microsoft .NET Framework 4.7/4.8 Multi-Targeting Pack and any Microsoft .NET Framework 4.x Extended entries.
  3. Reboot.
  4. Run install.bat from the Siemens USB (Section 5).
  5. Reboot.
  6. Reinstall .NET 4.7/4.8 via Windows Update or by downloading the offline installer from the Microsoft Catalog.
  7. Reboot.

9. Verification

After any of the four solutions above, run the following checks before installing TIA Portal, STEP 7, or WinCC:

9.1 Registry Check

reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" /v Install

Expected output: Install REG_DWORD 0x1

9.2 File System Check

dir %WINDIR%\Microsoft.NET\Framework64\v3.5\clr.dll
dir %WINDIR%\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll

9.3 PowerShell Verification

Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse |
  Get-ItemProperty -Name Version, Install -ErrorAction SilentlyContinue |
  Where-Object { $_.Install -eq '1' } |
  Select-Object PSChildName, Version

Expected entries: v2.0.50727, v3.0, v3.5 all with Install = 1.

9.4 Application Smoke Test

Run a small .NET 3.5 console app:

set COMPLUS_VERSION=v3.5
dotnet --list-runtimes

The TIA Portal V13 installer can then be launched; the "component .NET 3.5 missing" dialog should no longer appear.

10. Troubleshooting Matrix

Symptom Likely Cause Remediation
Wizard reports 0x800F081F with Microsoft media Wrong SxS source build (e.g., 19045 SxS on a 17763 OS) Match the SxS build to winver build number.
DISM returns 0x800F0907 Group policy blocks optional component install gpedit.msc → enable "Specify settings for optional component installation" → "Contact Windows Update directly" or point to source.
install.bat flashes and disappears No admin rights or blocked by AV Right-click → Run as administrator; whitelist DISM in AV.
.NET 3.5 enables but TIA still says missing 32-bit vs 64-bit binding; TIA is 32-bit and needs Framework 3.5 in Framework (not Framework64) Confirm both %WINDIR%\Microsoft.NET\Framework\v3.5 and Framework64\v3.5 exist.
Server 2012 still fails after language pack removal Pending reboot from previous Windows updates Run shutdown /r /t 0, then retry.
Recovery USB folder missing on USB Wrong USB (e.g., customer IT image instead of Siemens recovery) Order the latest recovery USB via Siemens spare parts; cite the IPC MLFB.
OS is Windows 11 IoT Enterprise on newer IPC647/847 Different image; .NET 3.5 requires LTSC and special SxS Use the matching Siemens USB and confirm build parity with winver.

11. Post-Install Recommendations

  1. Take a fresh Symantec Ghost or Acronis True Image snapshot of the system once .NET 3.5 is confirmed, so subsequent IPCs can be cloned with the feature already enabled.
  2. Disable Windows Update auto-restart on the IPC to avoid mid-installation reboots during TIA Portal deployment.
  3. Document the build number, USB revision, and the date of the .NET 3.5 install in the plant CMMS record for the IPC547G asset.
  4. If the plant policy blocks local admin accounts, grant the Power Users group SeLockMemoryPrivilege and DISM rights via secpol.msc before commissioning.

12. Field Notes for Other SIMATIC IPCs

The exact same procedure applies to the SIMATIC IPC427G, IPC627, IPC647, IPC847, IPC1047, IPC2x7, and IPC477E panel PCs. Each ships a recovery USB under \DocuAndDrivers\Software\OptionalWindowsFeatures\. The naming of the folder varies: DotNet35, DotNet351, or WinFeatures. Open the install.bat with Notepad to confirm the DISM call before running.

For IPCs in the 547/647/847 family that ship with Windows Server 2019, the language-pack removal path from Section 7 is also the most common unlock when the customer site has more than four language packs preinstalled.

Service tip: When the Siemens recovery USB is unavailable and the customer is air-gapped, build a small SxS copy from a known-good image of the same Windows build and transfer it via the customer's secure file-drop. A 600 MB copy of \sources\sxs is sufficient to enable .NET 3.5 offline.

For a complete commissioning checklist covering TIA Portal V18 on SIMATIC IPCs, refer to the Siemens SIMATIC IPC TIA Portal Installation Guide and the TIA Portal V18 Readme on the Siemens Industry Online Support portal.

FAQ

Why does the SIMATIC IPC547G ship with .NET 3.5 disabled?

The Windows 10 IoT Enterprise LTSB / LTSC image is hardened for industrial use, and the .NET 3.5 feature is left in the disabled with payload removed state to minimize the attack surface and reduce image size. Microsoft also removes the \sources\sxs folder on these trimmed images, which is why Add/Remove Windows Features cannot find the source files.

Where is the .NET 3.5 installer on the SIMATIC recovery USB?

Browse to \DocuAndDrivers\Software\OptionalWindowsFeatures\DotNet35 (or DotNet351 on later firmware) and run install.bat as administrator. The script calls DISM against a staged SxS folder bundled on the same USB, enabling the feature without internet access.

Can I install .NET 3.5 with DISM if I only have the Microsoft Windows ISO?

Yes. Mount the ISO, then run DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:<DriveLetter>:\sources\sxs. The build number in the ISO must match the running OS (e.g., 17763 for Windows 10 IoT 2019 LTSC). Restart the IPC after the command reports "The operation completed successfully".

How do I fix error 0x800F081F when installing .NET 3.5 on the IPC547G?

Error 0x800F081F means the source files were not found. Either the /Source path is wrong, the SxS folder is empty, or the build number of the source does not match the installed OS. Re-mount the matching Windows ISO or use the Siemens recovery USB, then retry with the exact DISM command from Section 6.2.

Does TIA Portal V17/V18 still need .NET 3.5 on a SIMATIC IPC547G?

No. TIA Portal V17 and V18 run on .NET Framework 4.8 only. However, if the same machine is also expected to host STEP 7 V5.6, WinCC V7.4/V7.5, or WinCC flexible 2008 SP5, .NET 3.5 must be enabled regardless of the TIA Portal version, because the legacy installers check for it.

What is the fastest way to verify .NET 3.5 is installed correctly?

Open an elevated PowerShell and run Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | Get-ItemProperty -Name Version, Install | Where-Object {$_.Install -eq '1'}. Confirm that v2.0.50727, v3.0, and v3.5 all report Install = 1 with a non-empty Version string.

Back to blog