> For the complete documentation index, see [llms.txt](https://www.osdeploy.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.osdeploy.com/archive/blog/2019/2019-06/osdbuilder-and-net-cu-kb4480056.md).

# OSDBuilder and .NET CU KB4480056

I was pinged on why a fully patched Windows 10 1809 image is missing **KB4480056**, so this post is my workflow

![](/files/-LhM3QzFS3KbGFS_6JWy)

## Create a New OSDBuilder

When working on an issue, I try to make sure that everything is clean, so I'll create a new OSDBuilder instance

```
OSDBuilder -SetPath D:\OSDBuilder\NetFX -CreatePaths
```

![](/files/-LhLbGt7daXM-OXK70rn)

## Copy OSMedia

In this test, I'm going to be working with Windows 10 x64 1809, so rather than Import and Update from scratch, I'll copy a fully patched OSMedia from another one of my OSDBuilder projects. I'll verify that everything is fully patched

```
OSMedia -Verbose
```

![](/files/-LhLbySgHzydz0A9Dez8)

## New-OSBuildTask

I'll create a New-OSBuild Task with the only purpose to enable NetFX 3.5

```
New-OSBuildTask -TaskName "NetFX Update Test" -EnableNetFX3
```

![](/files/-LhLctyj7kLBbiRosU87)

## New-OSBuild

I'll cheat again and copy the updates I need from another OSDBuilder project, and verify I have them downloaded using New-OSBuild (without the Execute parameter)

```
New-OSBuild
```

![](/files/-LhLdgaBIMp8AKbUlvNd)

## New-OSBuild -Execute -WaitDismount

Time to process the New-OSBuild. I don't want my Install.wim to dismount so I can check on a few files to make sure they are updated, an no need to wait for Component Cleanup either

```
New-OSBuild -Execute -WaitDismount -SkipComponentCleanup
```

## The OSBuild Process

Its important to understand what is happening here with NetFX 3.5

1. NetFX Updates are applied by force, meaning we don't care if the update was previously installed, we are going to do it again anyway. This is by design and different than the way other updates are applied (as those are skipped if they previously exist)
2. NetFX 3.5 is enabled. Keep in mind this is enabled from an OLD and UNPATCHED package, so now we have to throw some updates again
3. So the NetFX Cumulative Updates are reapplied
4. And the LCU is FORCED, so again, we don't care if it was already in there, we are making sure it is installed again

This is the proper way to do things folks!

![](/files/-LhLipO8nAqcOs_kINJO)

## New-OSDBuilderISO

Time to do some testing to see how the updates worked

```
New-OSDBuilderISO
```

![](/files/-LhLkTjkSJhce1nAAsTf)

## Virtual Machine

Thank GOD for Virtual Machines. Time to do some testing on the new image to see what updates are needed

![](/files/-LhLkw3iXTSbTn6ubonK)

And the results? Not good, I still needed KB4480056

![](/files/-LhM3rJC3Qn1JTHb4GSH)

## Further Testing

So I went back and created an ISO of my OSMedia to build out to see if the issue is NETFX 3.5 being enabled in an OSBuild and the results were the same

{% hint style="info" %}
**Its important to note that the 2019-03 1809 Update from Microsoft has this issue as well**
{% endhint %}

Checking WSUS certainly shows that this update is Superseded

![](/files/-LhM4_IkYK-C5RStktXz)

But the newer .NET Framework Cumulative Updates are not updating the .NET Framework files

![](/files/-LhM4uSbt2y7obFLVy-S)

So I add the previous Cumulative Update and proceed with updating my OSMedia

![](/files/-LhM5asZFFzLs9JqiROT)

Checking the Mounted Install.wim shows the updated files working as expected

![](/files/-LhM7C-pv1KZVdhEo6NB)

Validated it installed and is working properly

![](/files/-LhM7b1u68gUi92hMwId)

## Conclusion

**There seems to be an issue with .NET Cumulate Updates starting with KB4480056. I assume Microsoft has seen this issue, which explains why Windows Update detects that it needs to be installed, even after installing Superseding updates, but it doesn't appear that this same logic is in WSUS as the update is marked as Superseded. OSDBuilder will be updated to include this update**


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://www.osdeploy.com/archive/blog/2019/2019-06/osdbuilder-and-net-cu-kb4480056.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
