Files
UA-.NETStandard/Directory.Packages.props
Marc Schier 533937830b Restore UaLens Linux rendering (#4891)
# Description

Restore the Linux rendering checks temporarily excluded in #4822 by
updating all eight OpenUSD pins to the public **0.16.6-alpha** release.

The upstream fix keeps shared GPU surfaces where supported. When
Avalonia/Mesa cannot import external images or semaphores, it presents
completed Vulkan frames through host-memory readback instead. The
renderer, scene, and acceptance criteria remain unchanged.

- Update the complete OpenUSD package family and its verified-version
assertion together.
- Restore both live embedded-viewport workflow cases, the native
workflow smoke case, and the native viewport artifact case used by both
distribution jobs.
- Remove the temporary-exclusion notices and document the host-memory
presentation path and physical-GPU qualification limits.

All 21 resolved OpenUSD packages were independently verified on
nuget.org at source commit `0ebd61af4651457d903ed30f40965e8dcb060255`,
including the Metal and native RID graph. No private feed or replaced
DLLs are used. [Upstream
release](https://github.com/marcschier/openusd-dotnet/releases/tag/v0.16.6-alpha).

### Validation

The eight-file patch was carried unchanged onto `master` at
`97cc145811bc2d9cef11e685392696435b10df36`. The following Windows/.NET
10 checks were rerun on that base:

| Scope | Result |
| --- | --- |
| Live viewport and diagnostic workflows | Passed: 14, Failed: 0,
Skipped: 0 |
| OpenUSD package-version policy | Passed: 1, Failed: 0, Skipped: 0 |
| Viewport and rendered Vision adapters | Passed: 103, Failed: 0,
Skipped: 0 |
| Retained-camera provider and blank-frame guards | Passed: 45, Failed:
0, Skipped: 0 |

<details>
<summary>Windows commands and results</summary>

These options and reporting paths were used for each invocation:

```powershell
$options = @(
    '-c', 'Release', '-f', 'net10.0', '-p:CustomTestTarget=net10.0',
    '-p:UseArtifactsOutput=true',
    '-p:ArtifactsPath=D:\git\UA-.NETStandard_master\TestResults\ua-stack-feedback20261016',
    '-m:2'
)
$results = 'C:\Users\mschier\.copilot\session-state\abd33a2e-7139-44e1-9912-6e4451102b4e\files\openusd0166-pr-results'

# Passed: 14, Failed: 0, Skipped: 0
dotnet test tests\Opc.Ua.Lens.Workflow.Tests\Opc.Ua.Lens.Workflow.Tests.csproj @options --filter 'FullyQualifiedName~OpenUsdViewportWindowTests|FullyQualifiedName~DiagnosticCommandTests' --logger 'trx;LogFileName=workflow.trx' --results-directory $results

# Passed: 1, Failed: 0, Skipped: 0
dotnet test tests\Opc.Ua.Tools.Tests\Opc.Ua.Tools.Tests.csproj @options --filter 'FullyQualifiedName~OpenUsdPackageFamilyUsesOneVerifiedPrerelease' --logger 'trx;LogFileName=policy.trx' --results-directory $results

# Passed: 103, Failed: 0, Skipped: 0
dotnet test tests\Opc.Ua.Lens.Tests\Opc.Ua.Lens.Tests.csproj @options --filter 'FullyQualifiedName~OpenUsdViewport|FullyQualifiedName~RenderedVisionCaptureTests' --logger 'trx;LogFileName=adapters.trx' --results-directory $results

# Passed: 45, Failed: 0, Skipped: 0
dotnet test tests\Opc.Ua.Vision.Tests\Opc.Ua.Vision.Tests.csproj @options --filter 'FullyQualifiedName~RetainedSceneCameraCaptureProviderTests|FullyQualifiedName~BlankFrameGuardTests' --logger 'trx;LogFileName=capture.trx' --results-directory $results
```

The selected builds completed without new compiler/analyzer warnings.
`git diff --check` and the following formatting check passed:

```powershell
dotnet format whitespace --folder --include tests\Opc.Ua.Tools.Tests\PackageVersionPolicyTests.cs tests\Opc.Ua.Lens.Artifacts.Tests\PublishedArtifactTests.cs tests\Opc.Ua.Lens.Workflow.Tests\Companions\OpenUsdViewportWindowTests.cs tests\Opc.Ua.Lens.Workflow.Tests\Desktop\DiagnosticCommandTests.cs --verify-no-changes --verbosity quiet
```

</details>

The same patch was qualified before the base update on Ubuntu 24.04.5,
Mesa 25.2.8, and Xvfb, with no GPU device mounted:

| Scope | Result |
| --- | --- |
| Original live telemetry, picking, retained-camera capture, edit,
resize, and drain workflows | Passed: 14, Failed: 0, Skipped: 0 |
| Published Linux NativeAOT startup and native viewport | Passed: 2,
Failed: 0, Skipped: 0 |
| Freshly packed and installed Linux managed tool startup and native
viewport | Passed: 2, Failed: 0, Skipped: 0 |

Both artifact forms produced nonblank 256x192 Vulkan captures with
different decoded-pixel hashes after the scene edit, exit code zero, and
both required cleanup/smoke markers. No assertions, deadlines, or
workflow selectors were weakened.

<details>
<summary>Linux commands and results before the base update</summary>

The source was mounted read-only at `/repo`; isolated build outputs were
under `/work`, and retained results were under `/evidence`. These
commands ran in PowerShell inside the Ubuntu container:

```powershell
$options = @('-c', 'Release', '-f', 'net10.0', '-p:CustomTestTarget=net10.0', '-p:UseArtifactsOutput=true', '-p:ArtifactsPath=/work/build', '-m:2')
$env:LD_LIBRARY_PATH = '/work/build/bin/Opc.Ua.Lens.Workflow.Tests/release_net10.0:/work/build/bin/Opc.Ua.Lens.Workflow.Tests/release_net10.0/runtimes/linux-x64/native'

# Passed: 14, Failed: 0, Skipped: 0
xvfb-run --auto-servernum '--server-args=-screen 0 1600x1000x24 -dpi 96' dotnet test /repo/tests/Opc.Ua.Lens.Workflow.Tests/Opc.Ua.Lens.Workflow.Tests.csproj @options --filter 'FullyQualifiedName~OpenUsdViewportWindowTests|FullyQualifiedName~DiagnosticCommandTests' --logger 'trx;LogFileName=workflow-linux.trx' --results-directory /evidence/results -- NUnit.NumberOfTestWorkers=0 RunConfiguration.TreatNoTestsAsError=true

# Passed: NativeAOT publish, with trim/AOT diagnostics enabled
dotnet publish /repo/tools/Opc.Ua.Lens/Opc.Ua.Lens.csproj -c Release -f net10.0 -p:CustomTestTarget=net10.0 -p:UseArtifactsOutput=true -p:ArtifactsPath=/work/aotbuild -r linux-x64 --self-contained true -p:PackAsTool=false -p:PublishAotEnabled=true -p:SuppressTrimAnalysisWarnings=false -p:TrimmerSingleWarn=false -m:2 -o /work/native -bl:/evidence/native.binlog

$env:UALENS_ARTIFACT_EXECUTABLE = '/work/native/UaLens'
$env:UALENS_ARTIFACT_LOG_DIRECTORY = '/evidence/native-linux'
$env:UALENS_ARTIFACT_X11_VULKAN = 'true'
$env:UALENS_ARTIFACT_ALLOW_SOFTWARE_GL = 'false'
# Passed: 2, Failed: 0, Skipped: 0
xvfb-run --auto-servernum '--server-args=-screen 0 1600x1000x24 -dpi 96' dotnet test /repo/tests/Opc.Ua.Lens.Artifacts.Tests/Opc.Ua.Lens.Artifacts.Tests.csproj @options --filter 'FullyQualifiedName~PublishedArtifactTests' --logger 'trx;LogFileName=native-linux.trx' --results-directory /evidence/results -- NUnit.NumberOfTestWorkers=0 RunConfiguration.TreatNoTestsAsError=true

# Passed: restore, pack the selector and all three RID payloads, and isolated install
$pack = @('-p:CustomTestTarget=net10.0', '-p:UseArtifactsOutput=true', '-p:ArtifactsPath=/work/managedbuild', '-p:PublishAotEnabled=false', '-p:PublishAot=false', '-p:PublishTrimmed=false', '-p:PackAsTool=true')
dotnet restore /repo/tools/Opc.Ua.Lens/Opc.Ua.Lens.csproj -p:Configuration=Release @pack
dotnet pack /repo/tools/Opc.Ua.Lens/Opc.Ua.Lens.csproj -c Release --no-restore -p:TargetFramework=net10.0 @pack -m:2 -o /work/managed-packages -bl:/evidence/managed.binlog
dotnet tool install OPCFoundation.NetStandard.Opc.Ua.Lens --version 2.0.2-preview.100.g30f255be63 --tool-path /work/installed/tool --configfile /work/installed/NuGet.config --no-cache

$env:UALENS_ARTIFACT_EXECUTABLE = '/work/installed/tool/ualens'
$env:UALENS_ARTIFACT_LOG_DIRECTORY = '/evidence/installed-linux'
# Passed: 2, Failed: 0, Skipped: 0
xvfb-run --auto-servernum '--server-args=-screen 0 1600x1000x24 -dpi 96' dotnet test /repo/tests/Opc.Ua.Lens.Artifacts.Tests/Opc.Ua.Lens.Artifacts.Tests.csproj @options --filter 'FullyQualifiedName~PublishedArtifactTests' --logger 'trx;LogFileName=installed-linux.trx' --results-directory /evidence/results -- NUnit.NumberOfTestWorkers=0 RunConfiguration.TreatNoTestsAsError=true
```

The install configuration contained only the freshly packed
`/work/managed-packages` source; installation used an isolated tool
cache. The Linux SDK was 10.0.401, allowed by the repository's
minimum-SDK policy.

</details>

**Not run:** full `UA.slnx` suites on .NET Framework and .NET 10,
physical-GPU/display qualification, or downstream macOS/Windows
NativeAOT artifacts for this follow-up. Linux artifact results above
predate the move onto current `master`; the PR's CI must qualify the
final head. Coverage was not recollected, and no solution-wide or
current-head cross-platform CI pass is claimed.

## Related Issues

- Fixes #4890.
- Follow-up to #4822. No new application architecture or public UA API
is introduced; the compatibility repair is in the released OpenUSD
dependency.

## Checklist

- [ ] I have signed the
[CLA](https://opcfoundation.org/license/cla/ContributorLicenseAgreementv1.0.pdf)
and read the
[CONTRIBUTING](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/CONTRIBUTING.md)
doc.
- [ ] I have added tests that prove my fix is effective or that my
feature works and increased code coverage.
- [x] I have added all necessary documentation.
- [x] I have verified that my changes do not introduce (new) build or
analyzer warnings.
- [ ] I ran **all** tests locally using the **UA.slnx** solution against
at least .net **framework** and .net **10**, and all passed.
- [ ] I fixed **all** failing and flaky tests in the CI pipelines and
**all** CodeQL warnings.
- [ ] I have addressed **all** PR feedback received.

The existing rendering tests are restored, not replaced with weaker
cases. The remaining checklist items are not asserted by the focused
local evidence above.
2026-10-23 12:12:25 +02:00

227 lines
16 KiB
XML

<Project>
<!-- Roslyn API versions the analyzers and source generators are built against.
The central pins below track the newest of them so that the primary
analyzer variants and the projects that test them resolve identically. -->
<Import Project="roslyn.props" />
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<!-- Pin transitive package versions so PackageVersion entries below force the
resolved version everywhere they appear in the dependency graph, even when
no project declares a direct PackageReference. Used to remediate transitive
NU1903 vulnerabilities (System.Net.Http 4.3.0, System.Text.RegularExpressions
4.3.0) pulled in by Microsoft.AspNetCore.* 2.3.x on net8.0/net9.0. -->
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Aspire.Hosting.AppHost" Version="13.6.0" />
<PackageVersion Include="Avalonia.Fonts.Inter" Version="12.1.4" />
<PackageVersion Include="Avalonia.Themes.Fluent" Version="12.1.4" />
<PackageVersion Include="BenchmarkDotNet" Version="0.15.8" />
<PackageVersion Include="Microsoft.Diagnostics.Tracing.TraceEvent" Version="4.0.0" />
<PackageVersion Include="BitFaster.Caching" Version="2.6.1" />
<PackageVersion Include="BouncyCastle.Cryptography" Version="2.7.0" />
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.4.2" />
<PackageVersion Include="Confluent.Kafka" Version="2.16.0" />
<PackageVersion Include="coverlet.collector" Version="10.1.0" />
<PackageVersion Include="Crdt" Version="1.2.0" />
<PackageVersion Include="Crdt.Transport" Version="1.2.0" />
<PackageVersion Include="Dekaf" Version="1.24.0" />
<PackageVersion Include="RaftCs" Version="1.1.4" />
<PackageVersion Include="RaftCs.Transport" Version="1.1.4" />
<PackageVersion Include="RaftCs.Transport.NanoMsg" Version="1.1.4" />
<PackageVersion Include="RaftCs.Storage.File" Version="1.1.4" />
<PackageVersion Include="EmbedIO" Version="3.5.2" />
<PackageVersion Include="JsonSchema.Net" Version="9.4.1" />
<PackageVersion Include="Makaretu.Dns.Multicast" Version="0.27.0" />
<!-- Aspire/StreamJsonRpc otherwise restore vulnerable MessagePack 2.5.302 (GHSA-qhrr-8q5h-9q3h). -->
<PackageVersion Include="MessagePack" Version="2.5.307" />
<!-- Keep the legacy ASP.NET Core transport stack on the 2.3 band for net48/netstandard.
Connections.Abstractions must stay aligned with Kestrel, not the modern 10.x API. -->
<PackageVersion Include="Microsoft.AspNetCore.Connections.Abstractions" Version="2.3.13" />
<PackageVersion Include="Microsoft.AspNetCore.Hosting" Version="2.3.13" />
<PackageVersion Include="Microsoft.AspNetCore.Http" Version="2.3.13" />
<PackageVersion Include="Microsoft.AspNetCore.Server.Kestrel" Version="2.3.13" />
<PackageVersion Include="Microsoft.AspNetCore.Server.Kestrel.Core" Version="2.3.13" />
<PackageVersion Include="Microsoft.AspNetCore.Server.Kestrel.Https" Version="2.3.13" />
<PackageVersion Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" Version="2.3.13" />
<PackageVersion Include="Microsoft.AspNetCore.WebSockets" Version="2.3.13" />
<PackageVersion Include="Microsoft.Bcl.HashCode" Version="6.0.0" />
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.13" />
<PackageVersion Include="Microsoft.Bcl.TimeProvider" Version="10.0.13" />
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="5.9.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="$(RoslynApiVersionVS2026)" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="$(RoslynApiVersionVS2026)" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="$(RoslynApiVersionVS2026)" />
<PackageVersion Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="$(RoslynApiVersionVS2026)" />
<PackageVersion Include="Microsoft.Extensions.Compliance.Abstractions" Version="10.11.0" />
<PackageVersion Include="Microsoft.Extensions.Compliance.Redaction" Version="10.11.0" />
<PackageVersion Include="Microsoft.Extensions.Compliance.Testing" Version="10.11.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="10.0.13" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.13" />
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="10.0.13" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.13" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.13" />
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="10.0.13" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.13" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.13" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics" Version="10.0.13" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.ResourceMonitoring" Version="10.5.0" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="10.0.13" />
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="10.11.0" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.13" />
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="10.0.13" />
<PackageVersion Include="Microsoft.Extensions.Caching.Abstractions" Version="10.0.13" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.13" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="10.0.13" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.Testing" Version="10.11.0" />
<PackageVersion Include="Microsoft.Extensions.Telemetry" Version="10.11.0" />
<PackageVersion Include="Microsoft.Extensions.Telemetry.Abstractions" Version="10.11.0" />
<PackageVersion Include="Microsoft.Extensions.TimeProvider.Testing" Version="10.11.0" />
<PackageVersion Include="ModelContextProtocol" Version="2.2.0" />
<PackageVersion Include="ModelContextProtocol.AspNetCore" Version="2.2.0" />
<PackageVersion Include="ModelContextProtocol.Core" Version="2.2.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.11.0" />
<PackageVersion Include="Microsoft.Playwright" Version="1.63.0" />
<PackageVersion Include="Microsoft.SourceLink.AzureRepos.Git" Version="10.0.402" />
<!-- AI Model Management. Microsoft.Extensions.AI is the inference
abstraction: IChatClient is the contract that reaches a hosted service
and an on-device runtime alike, which is the property the specification
asserts about where inference runs. It requires System.Text.Json 10.0.13,
the version this repository already centralises on, so it costs nothing
to take. No cloud-vendor SDK is referenced anywhere: workload identity
is read from the token the platform projects, which is the mechanism
every platform implements underneath its own SDK. -->
<PackageVersion Include="Microsoft.Extensions.AI" Version="10.11.0" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="10.0.402" />
<PackageVersion Include="System.CommandLine" Version="2.0.13" />
<PackageVersion Include="Microsoft.VisualStudio.DiagnosticsHub.BenchmarkDotNetDiagnosers" Version="18.7.37220.1" />
<PackageVersion Include="Moq" Version="4.21.0" />
<PackageVersion Include="TUnit" Version="1.75.0" />
<PackageVersion Include="Nerdbank.GitVersioning" Version="3.10.94" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.4" />
<!--
PacketDotNet and SharpPcap are native-code dependencies of
Opc.Ua.Core.Diagnostics, Opc.Ua.PubSub.Diagnostics and (for the
opt-in WithPcap() backend, net8.0+ only) Opc.Ua.PubSub.Eth. They
dynamically load libpcap on Linux/macOS and Npcap on Windows. Per
SDL native-code policy:
- Versions are pinned (no floating range)
- SBOM tracking is required for every release
- Subscribe to upstream CVE feeds:
* https://github.com/dotpcap/sharppcap/security/advisories
* https://github.com/dotpcap/packetnet/security/advisories
- Review monthly; bump within 30 days for HIGH/CRITICAL CVEs
-->
<PackageVersion Include="PacketDotNet" Version="1.4.8" />
<PackageVersion Include="Pkcs11Interop" Version="5.3.0" />
<PackageVersion Include="SharpPcap" Version="6.3.1" />
<PackageVersion Include="NUnit" Version="5.0.0" />
<PackageVersion Include="NUnit.Analyzers" Version="4.15.0" />
<PackageVersion Include="NUnit.Console" Version="3.22.0" />
<PackageVersion Include="NUnit3TestAdapter" Version="6.3.1" />
<PackageVersion Include="ObjectLayoutInspector" Version="0.2.0" />
<PackageVersion Include="PolySharp" Version="1.16.0" />
<PackageVersion Include="Roslynator.Analyzers" Version="5.0.1" />
<PackageVersion Include="Roslynator.Formatting.Analyzers" Version="5.0.1" />
<PackageVersion Include="ScottPlot.Avalonia" Version="5.1.59" />
<PackageVersion Include="SharpFuzz" Version="2.3.0" />
<!-- Transitive vulnerability pin (consumed via Testcontainers.*):
- SSH.NET 2026.0.0 fixes GHSA-q939-rpr3-3284 -->
<PackageVersion Include="SSH.NET" Version="2026.0.0" />
<PackageVersion Include="Serilog" Version="4.4.0" />
<PackageVersion Include="Testcontainers" Version="4.16.0" />
<PackageVersion Include="Testcontainers.Kafka" Version="4.16.0" />
<PackageVersion Include="Serilog.Expressions" Version="5.0.0" />
<PackageVersion Include="Serilog.Extensions.Logging" Version="10.0.0" />
<PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" />
<PackageVersion Include="Serilog.Sinks.Debug" Version="3.0.0" />
<PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" />
<PackageVersion Include="System.Buffers" Version="4.6.1" />
<PackageVersion Include="System.Composition.AttributedModel" Version="10.0.13" />
<PackageVersion Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.2" />
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="10.0.13" />
<PackageVersion Include="System.Memory" Version="4.6.3" />
<PackageVersion Include="System.Formats.Asn1" Version="10.0.13" />
<PackageVersion Include="System.IO.Compression" Version="4.3.0" />
<PackageVersion Include="System.IO.FileSystem.AccessControl" Version="5.0.0" />
<!-- Transitive vulnerability pins (consumed via Microsoft.AspNetCore.* 2.3.x on
net8.0/net9.0 - default transitives are 4.3.0 with NU1903):
- System.Net.Http 4.3.4 fixes GHSA-7jgj-8wvc-jh57
- System.Text.RegularExpressions 4.3.1 fixes GHSA-cmhx-cq75-c4mj -->
<PackageVersion Include="System.Net.Http" Version="4.3.4" />
<PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1" />
<!-- Analyzer closures must stay on the host runtime band. Test and profiling hosts
use newer runtime packages through Directory.Build.targets. -->
<PackageVersion Include="System.Collections.Immutable" Version="$(RoslynRuntimeVersion)" />
<PackageVersion Include="System.Reflection.Metadata" Version="$(RoslynRuntimeVersion)" />
<PackageVersion Include="System.Text.Json" Version="10.0.13" />
<PackageVersion Include="System.Private.Uri" Version="4.3.2" />
<PackageVersion Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" />
<PackageVersion Include="System.Security.Cryptography.Cng" Version="5.0.0" />
<PackageVersion Include="System.Threading.Channels" Version="10.0.13" />
<PackageVersion Include="System.Threading.RateLimiting" Version="10.0.13" />
<PackageVersion Include="System.Threading.Tasks.Extensions" Version="4.6.3" />
</ItemGroup>
<!-- OpenUSD rendering stack, consumed by the optional
tools/Opc.Ua.OpenUsd.Connector.Viewer assembly that backs the connector's
view option, and by src/Opc.Ua.Vision.OpenUsd which renders the
Vision server's simulated camera views offscreen via Silk (D3D12/Vulkan).
Published on nuget.org. The runtime packages ship win-x64, linux-x64 and
osx-arm64; the RID-agnostic metapackages resolve the correct native asset
per RID, so no RID-conditional reference is required. All of these move
together because the managed and RID-specific runtime packages have to
match; a partial bump fails when the natives load rather than when the
solution builds. -->
<ItemGroup>
<PackageVersion Include="OpenUsd" Version="0.16.6-alpha" />
<PackageVersion Include="OpenUsd.Viewer" Version="0.16.6-alpha" />
<PackageVersion Include="OpenUsd.Rendering" Version="0.16.6-alpha" />
<PackageVersion Include="OpenUsd.Rendering.Silk" Version="0.16.6-alpha" />
<PackageVersion Include="OpenUsd.Rendering.Silk.D3D12" Version="0.16.6-alpha" />
<PackageVersion Include="OpenUsd.Rendering.Silk.Vulkan" Version="0.16.6-alpha" />
<PackageVersion Include="OpenUsd.Runtime.Core" Version="0.16.6-alpha" />
<PackageVersion Include="OpenUsd.Runtime.Imaging" Version="0.16.6-alpha" />
<PackageVersion Include="Avalonia" Version="12.1.4" />
<PackageVersion Include="Avalonia.Desktop" Version="12.1.4" />
</ItemGroup>
<!-- MQTTnet 5.x dropped net48 support. Per-TFM pinning is
required because CentralPackageTransitivePinningEnabled lets the central pin
win over PubSub's VersionOverride for transitive consumers (e.g. samples
that ProjectReference Opc.Ua.PubSub). See src/Opc.Ua.PubSub/Opc.Ua.PubSub.csproj. -->
<ItemGroup Condition="'$(TargetFramework)' == 'net48'">
<PackageVersion Include="MQTTnet" Version="4.3.7.1207" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' != 'net48'">
<PackageVersion Include="MQTTnet" Version="5.2.0.1603" />
<PackageVersion Include="MQTTnet.Server" Version="5.2.0.1603" />
</ItemGroup>
<!-- ASP.NET Core packages that ship one band per .NET major. Unlike the
Microsoft.Extensions.* packages above, these have no netstandard2.0 asset and
no roll-forward across majors: a net8.0 project cannot consume the 10.0.x
band. The consumers (src/Opc.Ua.Bindings.Https and
tests/Opc.Ua.Bindings.Https.WebApi.Tests) build for net8.0, net9.0 and
net10.0, so the version has to follow $(TargetFramework) rather than being a
single pin held down to the oldest supported band.
The net10.0 group is the fallback so that a TFM this file does not enumerate
- a future net11.0 - still resolves a version. -->
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
<PackageVersion Include="Microsoft.AspNetCore.Authentication.Certificate" Version="8.0.32" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.32" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.32" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="8.0.32" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
<PackageVersion Include="Microsoft.AspNetCore.Authentication.Certificate" Version="9.0.21" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.21" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.21" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="9.0.21" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' != 'net8.0' AND '$(TargetFramework)' != 'net9.0'">
<PackageVersion Include="Microsoft.AspNetCore.Authentication.Certificate" Version="10.0.13" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.13" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.13" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="10.0.13" />
</ItemGroup>
</Project>