# .NET 10 from Linux package managers breaks VirtoCommerce build and startup

**URL:** <https://www.virtocommerce.org/t/net-10-from-linux-package-managers-breaks-virtocommerce-build-and-startup/848>\
**Category:** Uncategorized\
**Created:** [April 7, 2026, 3:59pm UTC](https://www.virtocommerce.org/t/net-10-from-linux-package-managers-breaks-virtocommerce-build-and-startup/848 "2026-04-07T15:59:21Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![asvishnyakov](https://yyz2.discourse-cdn.com/flex032/user_avatar/www.virtocommerce.org/asvishnyakov/32/2722_2.png) [@asvishnyakov](https://www.virtocommerce.org/u/asvishnyakov)\
**Post date:** [April 7, 2026, 3:59pm UTC](https://www.virtocommerce.org/t/net-10-from-linux-package-managers-breaks-virtocommerce-build-and-startup/848/1 "2026-04-07T15:59:21Z")

</div>

### What happens

VirtoCommerce Platform fails to start with:

```auto
Unhandled exception. System.TypeLoadException: Could not load type
'Microsoft.AspNetCore.Builder.IISServerOptions' from assembly
'Microsoft.AspNetCore.Server.IIS, Version=10.0.0.0, Culture=neutral,
PublicKeyToken=adb9793829ddae60'

```

or build with

`The type or namespace name 'IISServerOptions' could not be found`

**Note:**  **Docker containers are not affected** — only environments where .NET 10 is installed via a system package manager (such as apt).

### Why

Linux distros (Ubuntu, Fedora, etc.) ship **source-built**.NET packages. Due to a dependency that can’t be compiled in source-build mode ([dotnet/aspnetcore#50685](https://github.com/dotnet/aspnetcore/pull/50685)), the IIS module is compiled as a 17 KB stub missing most types — including `IISServerOptions`.

This is a known, still-open issue:

- [dotnet/aspnetcore#63783](https://github.com/dotnet/aspnetcore/issues/63783) — `IISServerOptions` and other IIS APIs missing from source-build

- [dotnet/aspnetcore#65931](https://github.com/dotnet/aspnetcore/issues/65931) — Windows-only reference assemblies are empty on Ubuntu

- [dotnet/source-build#5344](https://github.com/dotnet/source-build/issues/5344) — API differences tracker between Microsoft and source-built SDKs

Microsoft no longer publishes .NET 10 to their own package feed for Ubuntu 24.04+ ([docs](https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu-decision#supported-distributions)), so `apt` only gets the broken source-built version.

### How to fix

Install Microsoft-built .NET 10 via the official install script:

```bash
curl -L https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel 10.0

```

This installs to `~/.dotnet` by default. Then add to **both** `~/.profile` and `~/.bashrc`:

```bash
# Microsoft .NET
export DOTNET_ROOT="$HOME/.dotnet"
[[":$PATH:" != *":$DOTNET_ROOT:"*]] && export PATH="$DOTNET_ROOT:$DOTNET_ROOT/tools:$PATH"

```

Re-login or `source ~/.bashrc`, then verify:

```bash
dotnet --version # should show 10.x from ~/.dotnet, not /usr/bin

```
