Repository navigation
Add support to publish OPC UA applications as Native AOT #3633
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 125 commits
Commits
Show all changes
145 commits
Select commit
Hold shift + click to select a range
7df108c
make types project aot compatible
marcschier a9e15ce
newtonsoft
marcschier c27d8c9
Migrate all projects from Mono.Options to System.CommandLine 2.0.5
marcschier 4b54f8e
newtonsoft
marcschier 7078b63
Updates
marcschier 4fd14a2
Merge with master
marcschier b87ec1f
Merge branch 'master' into analyzerfixes2
marcschier 621224f
Remove unconditional suppressions
marcschier 6850614
Fix array clone
marcschier ea6f07d
Replace serializer for store
marcschier c0aa5ab
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier c1f04ac
Updates
marcschier a948d00
Update
marcschier cd485ad
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier 4da6882
Update
marcschier 38b05f9
Update
marcschier b9f8829
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier ea41241
Update
marcschier f6969db
Update
marcschier 2d3916e
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier 1b30e5d
Refactor status message assertions in tests
marcschier a041c25
Merge branch 'master' of https://github.com/OPCFoundation/UA-.NETStan…
marcschier 89e807f
Updates
marcschier b0f5ba5
Merge branch 'master' of https://github.com/OPCFoundation/UA-.NETStan…
marcschier 74a2452
More serializer
marcschier 8726a9a
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier a84be15
update
marcschier 05fb8ef
Update
marcschier c08cfba
Update
marcschier fad48ec
Update
marcschier aa1b53a
update
marcschier ccff79e
Tests
marcschier 23140ec
Add 22 new AOT integration tests covering 7 functional areas
marcschier 55e6d5b
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier 4029d0f
gds
marcschier 27bac55
gds
marcschier bbf45d8
serializer
marcschier e1c3f49
Update
marcschier 21b77c4
Fix GDS test failures and CA1859 warning after serializer migration
marcschier 5326183
types
marcschier 694a11c
D3: Remove stale AOT suppressions; add AOT-safe AddExtension<T> overload
marcschier 744ac0d
Remove all #region/#endregion directives from C# source files
marcschier a968f85
Updates
marcschier 6839201
Rename Opc.Ua.Client.AotTests to Opc.Ua.Aot.Tests; add Async suffix t…
marcschier 453d4b0
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier 6ef1aae
Merge
marcschier 41bb777
Update
marcschier 2668422
Update
marcschier 0644de5
update
marcschier 2293557
Update
marcschier 239fe34
Update
marcschier fcc94d9
Fix NativeAOT test failures in Opc.Ua.Aot.Tests
marcschier 5ed7d5f
Add NativeAOT test job to GitHub Actions CI workflow
marcschier 7ebf357
Update
marcschier 05268b8
Merge
marcschier 70cfbf7
Implement [DataType] source generator for IEncodeable code generation
marcschier 62cff38
Add unit tests for DataTypeSourceGenerator (10 tests)
marcschier a5c1fdd
Refactor [DataType] source generator to use template system
marcschier d6beec6
Update
marcschier d6364f1
Batch [DataType] source generation into single file per namespace
marcschier 7c01f69
Cleanup
marcschier 63e4f9b
Add [DataType] source generator compilation tests
marcschier a98d1ba
Add incremental compilation test for [DataType] source generator
marcschier f52dcc5
Tests
marcschier ddd712b
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier e307314
Pilot: migrate GlobalDiscoveryServerConfiguration to [DataType] sourc…
marcschier 4af428a
Re-enable GDS AOT tests — all 56 tests pass under NativeAOT
marcschier 8fe4c8f
Update
marcschier c3f1579
Add inheritance/sealed/access model fields for [DataType] generator
marcschier cdd892d
Add inheritance/sealed/access support to [DataType] source generator
marcschier 14d609b
Update
marcschier e478374
Add sealed/derived record templates and remove DerivedSealed
marcschier 4f11aee
update
marcschier 0b90bd3
Remove DataContractSerializer from GDS configuration types
marcschier 0b1df96
Stream 4: Migrate BrowserOptions to [DataType] source generator
marcschier 3515a86
Stream 3: Migrate OAuth2 types to [DataType] source generator
marcschier b931bcb
Stream 1: Annotate 16 AppConfig types with [DataType] source generator
marcschier 53e27ca
Three generator improvements for Stream 1 completion
marcschier 1f90723
Annotate remaining 4 AppConfig types with [DataType]
marcschier 2562062
update
marcschier 9089fe0
Update
marcschier 6436d85
d7: Remove stale DCS suppressions from GDS server
marcschier 4f2575d
s1-switch-load: Switch SaveToFile to IEncodeable.Encode
marcschier b5fbb92
update
marcschier 444e4d4
partial
marcschier 3cd43be
Fix
marcschier fc3fabc
s1-delete-file: Delete ApplicationConfigurationEncoding.cs (1738 lines)
marcschier 654b71d
update
marcschier bafdfa7
update
marcschier 8c5fd20
Fix ReadEncodeable to return null for absent fields + null guards
marcschier c5efc79
Fix all test failures: restore encoding file for load path
marcschier ea42ccb
Replace DataContractSerializer with XmlParser/XmlEncoder for SecuredA…
marcschier a58d1af
Update
marcschier 02945c0
Update
marcschier bcf855e
Fix SaveToFile and ArrayOf<T> migration issues in ApplicationConfigur…
marcschier 973f678
update
marcschier f784fdc
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier f5783f9
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier 5588b7b
update
marcschier b1022c0
update
marcschier 019d7d9
update
marcschier b46e04b
Update
marcschier 089df8a
Update
marcschier b8d6f14
Update
marcschier 05efa1f
Update
marcschier 8f20a16
Update
marcschier 2dd99c6
Update
marcschier af7ed2d
Update
marcschier 467e260
update
marcschier 76a0acf
Merge branch 'complextypes' of https://github.com/OPCFoundation/UA-.N…
marcschier b20bc76
Update
marcschier 0018c69
Update
marcschier 2e4507e
cleanup
marcschier f4ac5e6
remove
marcschier 59c1a2b
devops
marcschier e9c6cec
Thread CancellationToken through CreateAddressSpace to OnAfterCreate
marcschier 78f1c9b
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier a73c75b
More data contract cleanup
marcschier c62ee12
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier a1731f3
Modernize ApplicationInstance for hosted service patterns
marcschier 94b61fb
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier b63084b
Update
marcschier 96b716c
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier 05e981c
update
marcschier 7ef101d
Fix build
marcschier 773bfb0
Update
marcschier 9a2db70
Add config tests
marcschier a3eef7f
docs
marcschier 8b6b920
update
marcschier 55ac216
EmitDefault
marcschier c65492d
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier fac3d50
Update
marcschier 5a63ac7
Update
marcschier cb4ed0e
Update
marcschier d8b17e3
update
marcschier c2bc492
Update
marcschier 29bf782
Merge branch 'analyzerfixes2' of https://github.com/OPCFoundation/UA-…
marcschier c6e222a
fix
marcschier e4f7cd1
PR feedback
marcschier a78bcb8
Fixes
marcschier f8bf978
Another fix
marcschier d6c4ffc
More
marcschier 2766311
update
marcschier 1d103d2
Move encodeable factory types to opc.ua.types
marcschier 57896bf
Revert
marcschier File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,76 @@ | ||
| # | ||
| # Test Opc.Ua.Aot.Tests with native AOT publish using Microsoft Testing Platform | ||
| # | ||
| parameters: | ||
| configuration: 'Release' | ||
| agents: '@{}' | ||
| jobnamesuffix: '' | ||
| jobs: | ||
| - job: testaotprep${{ parameters.jobnamesuffix }} | ||
| displayName: Prepare AoT Test Jobs ${{ parameters.configuration }} | ||
| pool: | ||
| vmImage: 'windows-2025-vs2026' | ||
| variables: | ||
| DOTNET_CLI_TELEMETRY_OPTOUT: true | ||
| DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | ||
| steps: | ||
| - task: PowerShell@2 | ||
| name: aotmatrix | ||
| displayName: Prepare AoT Tests | ||
| inputs: | ||
| targetType: filePath | ||
| filePath: ./.azurepipelines/get-matrix.ps1 | ||
| arguments: -FileName Opc.Ua.Aot.Tests.csproj -AgentTable ${{ parameters.agents }} | ||
| - job: testaot${{ parameters.jobnamesuffix }} | ||
| displayName: AoT Tests | ||
| dependsOn: testaotprep${{ parameters.jobnamesuffix }} | ||
| timeoutInMinutes: 30 | ||
| strategy: | ||
| matrix: $[dependencies.testaotprep${{ parameters.jobnamesuffix }}.outputs['aotmatrix.jobMatrix'] ] | ||
| variables: | ||
| DOTNET_CLI_TELEMETRY_OPTOUT: true | ||
| DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | ||
| pool: | ||
| vmImage: $(poolImage) | ||
| steps: | ||
| - task: UseDotNet@2 | ||
| displayName: 'Install .NET 10.0' | ||
| inputs: | ||
| packageType: 'sdk' | ||
| version: '10.0.x' | ||
| - task: NuGetToolInstaller@1 | ||
| inputs: | ||
| versionSpec: '>=7.0.x' | ||
| - task: PowerShell@2 | ||
| displayName: Versioning | ||
| inputs: | ||
| targetType: filePath | ||
| filePath: ./.azurepipelines/set-version.ps1 | ||
| - task: DotNetCoreCLI@2 | ||
| displayName: Publish AoT Tests ${{ parameters.configuration }} | ||
| inputs: | ||
| command: publish | ||
| publishWebProjects: false | ||
| projects: $(file) | ||
| arguments: '--configuration ${{ parameters.configuration }}' | ||
| zipAfterPublish: false | ||
| modifyOutputPath: false | ||
| - task: PowerShell@2 | ||
| displayName: Run AoT Tests | ||
| inputs: | ||
| pwsh: true | ||
| targetType: inline | ||
| script: | | ||
| $publishDir = Get-ChildItem -Path "$(folder)/bin/${{ parameters.configuration }}/net10.0/*/publish" -Directory | Select-Object -First 1 | ||
| if (-not $publishDir) { | ||
| Write-Error "No publish directory found." | ||
| exit 1 | ||
| } | ||
| if ($IsWindows) { | ||
| $exe = Join-Path $publishDir.FullName "Opc.Ua.Aot.Tests.exe" | ||
| } else { | ||
| $exe = Join-Path $publishDir.FullName "Opc.Ua.Aot.Tests" | ||
| } | ||
| Write-Host "Running: $exe" | ||
| & $exe | ||
| if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -187,6 +187,7 @@ BundleArtifacts/ | |
|
|
||
| # Others | ||
| ClientBin/ | ||
| _publish/ | ||
| ~$* | ||
| *~ | ||
| *.dbmdl | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.