mirror of
https://github.com/OPCFoundation/UA-.NETStandard.git
synced 2026-10-19 07:02:16 +08:00
06ae192084
## Summary - stabilize the History, authentication lockout, Robotics, redundancy, and DI tests reported in #4301-#4305 - fix the closed-transport buffered-write completion deadlock that hung `ConnectMultipleSessionsAsync` - add macOS crash diagnostics for #4306 and retain evidence for root-cause analysis - run macOS tests and NativeAOT in GitHub Actions pull requests, using supported Intel and ARM64 runners, while keeping every Azure macOS definition disabled by default - move all remaining source-level `InternalsVisibleTo` declarations into project files so signed OpenUSD builds receive the repository public key ## Local validation - MCP PubSub: 29 passed - History focused tests: 3 passed - Sessions lockout: 3 passed - Sessions multiple-session regression: 3 passed - deterministic binary client channel tests: 22 passed - Robotics runtime: 34 passed - Redundancy focused tests: 4 passed - OpenUSD net10.0: 914 passed - affected OpenUSD projects build on net10.0 and net48 Refs #4299, #4300, #4306 Fixes #4301 Fixes #4302 Fixes #4303 Fixes #4304 Fixes #4305 --------- Copilot-Session: 7cb486de-8b4c-43c5-a900-e7d2e0ad04a8
78 lines
4.4 KiB
XML
78 lines
4.4 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<PropertyGroup>
|
|
<TargetFrameworks>$(AppTargetFrameworks)</TargetFrameworks>
|
|
<OutputType>Exe</OutputType>
|
|
<IsPackable>false</IsPackable>
|
|
<AssemblyName>GeneratorServer</AssemblyName>
|
|
<PackageId>GeneratorServer</PackageId>
|
|
<Description>Self-contained .NET console OPC UA server demonstrating the Generators companion specification end-to-end, including a datasheet-driven generator-set simulation, a twelve-state operating state machine, protection alarms and a per-set OpenUSD twin.</Description>
|
|
<RootNamespace>Generators</RootNamespace>
|
|
<Nullable>enable</Nullable>
|
|
<NoWarn>$(NoWarn);CA1822</NoWarn>
|
|
<PublishAot Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net10.0'))">true</PublishAot>
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\..\..\src\Opc.Ua.Configuration\Opc.Ua.Configuration.csproj" />
|
|
<ProjectReference Include="..\..\..\src\Opc.Ua.Server\Opc.Ua.Server.csproj" />
|
|
<ProjectReference Include="..\..\..\src\Opc.Ua.Di\Opc.Ua.Di.csproj" />
|
|
<ProjectReference Include="..\..\..\src\Opc.Ua.Di.Server\Opc.Ua.Di.Server.csproj" />
|
|
<ProjectReference Include="..\..\..\src\Opc.Ua.OpenUsd\Opc.Ua.OpenUsd.csproj" />
|
|
<ProjectReference Include="..\..\..\src\Opc.Ua.OpenUsd.Server\Opc.Ua.OpenUsd.Server.csproj" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\..\..\tools\Opc.Ua.SourceGeneration\Opc.Ua.SourceGeneration.csproj">
|
|
<OutputItemType>Analyzer</OutputItemType>
|
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
|
</ProjectReference>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<PackageReference Include="Microsoft.Extensions.Hosting" />
|
|
<PackageReference Include="Microsoft.Extensions.Logging.Console" />
|
|
</ItemGroup>
|
|
<!-- The conformance tests read the simulation constants to verify that they
|
|
agree with the published datasheet instead of duplicating those values. -->
|
|
<ItemGroup>
|
|
<InternalsVisibleTo Include="Opc.Ua.OpenUsd.Tests" />
|
|
</ItemGroup>
|
|
<!-- Authored USD layers embedded so the server ships (and serves) its own twin
|
|
geometry: Powerhouse.usda (RootLayer) + generator.usda (Reference). -->
|
|
<ItemGroup>
|
|
<EmbeddedResource Include="Assets\Powerhouse.usda"><LogicalName>Powerhouse.usda</LogicalName></EmbeddedResource>
|
|
<EmbeddedResource Include="Assets\generator.usda"><LogicalName>generator.usda</LogicalName></EmbeddedResource>
|
|
</ItemGroup>
|
|
<!-- IA + Machinery + Generators NodeSet2 XMLs are source-generated locally; no
|
|
library refs needed. The generator emits typed classes, NodeId tables, and
|
|
the AddOpcUaMachinery / AddOpcUaGenerators extension methods in the
|
|
Opc.Ua.Machinery and Opc.Ua.Generators namespaces (internal to this
|
|
assembly). Cross-namespace type references to DI types resolve via the
|
|
[assembly: ModelDependencyAttribute] carried in the Opc.Ua.Di assembly, so
|
|
no DI NodeSet2 XML is needed here.
|
|
|
|
The full official Machinery nodeset is required (not the reduced copy the
|
|
pump sample carries): the Generators model composes the Machinery
|
|
MachineryItemState and MachineryOperationMode state machines and
|
|
specialises MachineIdentificationType, none of which the reduced set
|
|
defines. The full set in turn declares a dependency on IA, so IA is
|
|
vendored as well - it needs only UA core and DI.
|
|
|
|
The matching *.NodeSet2.csv files (alongside each XML) are picked up as the
|
|
stable NodeId tables. Without them the generator would assign synthetic
|
|
NodeIds at compile time, breaking byte-stable wire formats for clients that
|
|
cache NodeIds across builds. -->
|
|
<ItemGroup>
|
|
<AdditionalFiles Include="Model\Opc.Ua.Machinery.NodeSet2.xml">
|
|
<ModelSourceGeneratorPrefix>Opc.Ua.Machinery</ModelSourceGeneratorPrefix>
|
|
</AdditionalFiles>
|
|
<AdditionalFiles Include="Model\Opc.Ua.Machinery.NodeSet2.csv" />
|
|
<AdditionalFiles Include="Model\Opc.Ua.Generators.NodeSet2.xml">
|
|
<ModelSourceGeneratorPrefix>Opc.Ua.Generators</ModelSourceGeneratorPrefix>
|
|
</AdditionalFiles>
|
|
<AdditionalFiles Include="Model\Opc.Ua.Generators.NodeSet2.csv" />
|
|
</ItemGroup>
|
|
<Import Project="..\..\..\tools\Opc.Ua.SourceGeneration\OPCFoundation.Opc.Ua.SourceGeneration.props" />
|
|
<PropertyGroup>
|
|
<ModelSourceGeneratorVersion>v105</ModelSourceGeneratorVersion>
|
|
<ModelSourceGeneratorUseAllowSubtypes>true</ModelSourceGeneratorUseAllowSubtypes>
|
|
</PropertyGroup>
|
|
</Project>
|