Skip to content

Commit 007cfaf

Browse files
authored
DO NOT SQUASH: Consolidate repository layout under src, samples, tests, tools, docs, and fuzzing (#4010)
# Description Consolidates the repository into conventional lowercase source roots: - flattens `Stack/` and `Libraries/` into `src/`; - moves `Applications/` to `samples/`; - moves the MCP tool to `tools/Opc.Ua.Mcp`; - renames `Tests/`, `Tools/`, `Docs/`, and `Fuzzing/` to lowercase; - updates all project references, solutions, CI pipelines, scripts, Dockerfiles, package documentation, and repository links. The final tree contains the same projects, package identities, assemblies, and runtime behavior as before. > [!IMPORTANT] > Merge this PR with a merge commit; do not squash it. Git stores trees rather than rename metadata, and 115 files share duplicate blobs. The four commits temporarily disambiguate those files, preserve all 4,580 exact old-to-new path mappings, and then restore the final content. ## Related Issues - Fixes #3907 ## Validation - Windows `net10.0`: 45 test projects, 42,485 passed and 683 skipped. One timing-sensitive History project was rerun in isolation and passed. - Windows `net48`: 45 test projects, 40,651 passed and 706 skipped. - Linux case-sensitive `net10.0` build and path-sensitive integration tests passed. - NativeAOT publish and all 115 published AOT tests passed. - Full preview solution restore/pack completed across all target frameworks and produced 81 packages. - The packaged MCP tool installed and returned `--help` successfully. - All 10 Dockerfile paths and all 6 compose files validated. Full image builds were attempted but Docker Desktop's Linux daemon was unavailable locally. ## 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. - [x] 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. This is a repository-layout-only change, so no new behavioral tests were added.
2 parents 80889b0 + 437a0da commit 007cfaf

4,621 files changed

Lines changed: 1696 additions & 1700 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agents/skills/opcua-v20-migration/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Trigger this skill when a user asks for any of:
1919
## When NOT to use
2020

2121
- The user is starting a new OPC UA project from scratch — point them at
22-
`Docs/README.md` and the `Applications/ConsoleReferenceClient` /
22+
`docs/README.md` and the `samples/ConsoleReferenceClient` /
2323
`ConsoleReferenceServer` samples instead.
2424
- The user is migrating **within** 1.5.x (point or service-release upgrades).
2525
- The user is debugging server-side OPC UA functional behaviour — try the
@@ -53,16 +53,16 @@ opcua-v20-migration/
5353
This skill **distils** the following authoritative repo files. When you update
5454
the skill, also update them (and vice versa) so the views stay in sync:
5555

56-
- [`Docs/MigrationGuide.md`](../../../Docs/MigrationGuide.md) — the migration
56+
- [`docs/MigrationGuide.md`](../../../docs/MigrationGuide.md) — the migration
5757
guide landing page (small; just an index across versions).
58-
- [`Docs/migrate/2.0.x/README.md`](../../../Docs/migrate/2.0.x/README.md)
58+
- [`docs/migrate/2.0.x/README.md`](../../../docs/migrate/2.0.x/README.md)
5959
the 2.0 version landing page + the same symptom → sub-doc table this skill
6060
uses to load only what's needed.
61-
- [`Docs/migrate/2.0.x/`](../../../Docs/migrate/2.0.x/) — the 12 thematic
61+
- [`docs/migrate/2.0.x/`](../../../docs/migrate/2.0.x/) — the 12 thematic
6262
sub-docs (telemetry, packages, source-generation, types, encoders,
6363
node-states, identity, certificates, configuration, sessions-subscriptions,
6464
alarms-model-change, timeprovider).
65-
- [`Tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md`](../../../Tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md)
65+
- [`tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md`](../../../tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md)
6666
— the package's own NuGet README.
6767

6868
## License

.agents/skills/opcua-v20-migration/SKILL.md

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ metadata:
2626
version: "1.0.0"
2727
upstream: https://github.com/OPCFoundation/UA-.NETStandard
2828
canonical-docs:
29-
- Docs/MigrationGuide.md # landing page (small)
30-
- Docs/migrate/2.0.x/README.md # 2.0 version landing + sub-doc index
31-
- Docs/migrate/2.0.x/ # 12 thematic sub-docs (load only what you need)
32-
- Tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md
29+
- docs/MigrationGuide.md # landing page (small)
30+
- docs/migrate/2.0.x/README.md # 2.0 version landing + sub-doc index
31+
- docs/migrate/2.0.x/ # 12 thematic sub-docs (load only what you need)
32+
- tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md
3333
---
3434

3535
# OPC UA .NET Standard 1.5.378 → 2.0 Migration
@@ -42,28 +42,28 @@ Upgrade existing OPC UA .NET Standard consumer projects from 1.5.378
4242

4343
**Context-efficiency rule.** The full migration content is no longer in
4444
a single ~150 KB document; it is split across 12 thematic sub-docs under
45-
[`Docs/migrate/2.0.x/`](../../../Docs/migrate/2.0.x/README.md).
46-
**Do not load `Docs/MigrationGuide.md` into context** — it is now a thin
45+
[`docs/migrate/2.0.x/`](../../../docs/migrate/2.0.x/README.md).
46+
**Do not load `docs/MigrationGuide.md` into context** — it is now a thin
4747
landing page. Instead, match the user's symptom to a row below and load
4848
the **single** sub-doc named in that row.
4949

5050
| When the user hits… | Load only |
5151
| --- | --- |
52-
| `CS0029` / `CS1503` / `CS0266` on `NodeId`, `Variant`, `DataValue`, `ExtensionObject`, `QualifiedName`, `LocalizedText`, `ArrayOf<T>` / `MatrixOf<T>`, `ByteString`, `StatusCode`, `XmlElement`, `EnumValue`, or `[Obsolete]` on built-in type APIs (analyzer `UA0001``UA0020`) | [`Docs/migrate/2.0.x/types.md`](../../../Docs/migrate/2.0.x/types.md) |
53-
| `Utils.LogX`, `Utils.Trace`, static logger helpers (`Utils.SetLogger` / `Utils.SetLogLevel` removed), `ITelemetryContext` constructor parameter shape per type, OLD-vs-NEW logger snippets, fluent `AddOpcUa().AddLogging().AddMetrics()` registration, breaking-changes inventory across Core / Configuration / Client / Server / PubSub / Certificate / Transport, migration utilities (`DefaultTelemetry`, `Telemetry.NullLogger`, `Utils.Fallback.Logger`) | [`Docs/migrate/2.0.x/telemetry.md`](../../../Docs/migrate/2.0.x/telemetry.md) |
54-
| Package upgrades, TFM changes, `Newtonsoft.Json` removal from `Opc.Ua.Core`, new published packages | [`Docs/migrate/2.0.x/packages.md`](../../../Docs/migrate/2.0.x/packages.md) |
55-
| Source-generated `*Collection` shims, NodeManager generator, default of `bool` properties, project structure | [`Docs/migrate/2.0.x/source-generation.md`](../../../Docs/migrate/2.0.x/source-generation.md) |
56-
| `IEncodeableFactoryBuilder`, `IType`, JSON / XML / binary encoders, `EncodeableFactory.GlobalFactory`, `IJsonEncodeable`, `ComplexTypes` namespace move | [`Docs/migrate/2.0.x/encoders.md`](../../../Docs/migrate/2.0.x/encoders.md) |
57-
| Custom NodeManagers, `NodeState` clone / read / write helpers, `Clone``CreateCopy`, `OnAfterCreate(CancellationToken)`, `INodeManager3`, `INodeCache.InvalidateNode`, generics on `BaseVariableState` / `BaseVariableTypeState` | [`Docs/migrate/2.0.x/node-states.md`](../../../Docs/migrate/2.0.x/node-states.md) |
58-
| `IUserIdentityTokenHandler`, `IClientIdentityProvider`, `IUserTokenAuthenticator`, `IAccessTokenProvider`, `ITokenIssuer`, caller-supplied secrets, secret store | [`Docs/migrate/2.0.x/identity.md`](../../../Docs/migrate/2.0.x/identity.md) |
59-
| `CertificateValidator` rename (`UA0021`), ref-counted `Certificate` wrapper, `CertificateManager`, `ICertificateProvider`, obsoleted `X509Certificate2` direct-exposure APIs | [`Docs/migrate/2.0.x/certificates.md`](../../../Docs/migrate/2.0.x/certificates.md) |
60-
| `ApplicationConfiguration` changes, Data-Contract serializer removal, `ParseExtension` / `UpdateExtension` signature, session / browser state persistence | [`Docs/migrate/2.0.x/configuration.md`](../../../Docs/migrate/2.0.x/configuration.md) |
61-
| `Session``ManagedSession`, V2 subscription engine, GDS-client `Task``ValueTask` modernisation, removed obsolete GDS APIs, durable subscriptions, PubSub, reverse-connect | [`Docs/migrate/2.0.x/sessions-subscriptions.md`](../../../Docs/migrate/2.0.x/sessions-subscriptions.md) |
62-
| `AlarmConditionState` state-transition behaviour, auto-emitted `GeneralModelChangeEvent`, `ModelChangeAggregator` | [`Docs/migrate/2.0.x/alarms-model-change.md`](../../../Docs/migrate/2.0.x/alarms-model-change.md) |
63-
| `DateTime.UtcNow`, `Timer`, deterministic-time tests, `System.TimeProvider` adoption | [`Docs/migrate/2.0.x/timeprovider.md`](../../../Docs/migrate/2.0.x/timeprovider.md) |
52+
| `CS0029` / `CS1503` / `CS0266` on `NodeId`, `Variant`, `DataValue`, `ExtensionObject`, `QualifiedName`, `LocalizedText`, `ArrayOf<T>` / `MatrixOf<T>`, `ByteString`, `StatusCode`, `XmlElement`, `EnumValue`, or `[Obsolete]` on built-in type APIs (analyzer `UA0001``UA0020`) | [`docs/migrate/2.0.x/types.md`](../../../docs/migrate/2.0.x/types.md) |
53+
| `Utils.LogX`, `Utils.Trace`, static logger helpers (`Utils.SetLogger` / `Utils.SetLogLevel` removed), `ITelemetryContext` constructor parameter shape per type, OLD-vs-NEW logger snippets, fluent `AddOpcUa().AddLogging().AddMetrics()` registration, breaking-changes inventory across Core / Configuration / Client / Server / PubSub / Certificate / Transport, migration utilities (`DefaultTelemetry`, `Telemetry.NullLogger`, `Utils.Fallback.Logger`) | [`docs/migrate/2.0.x/telemetry.md`](../../../docs/migrate/2.0.x/telemetry.md) |
54+
| Package upgrades, TFM changes, `Newtonsoft.Json` removal from `Opc.Ua.Core`, new published packages | [`docs/migrate/2.0.x/packages.md`](../../../docs/migrate/2.0.x/packages.md) |
55+
| Source-generated `*Collection` shims, NodeManager generator, default of `bool` properties, project structure | [`docs/migrate/2.0.x/source-generation.md`](../../../docs/migrate/2.0.x/source-generation.md) |
56+
| `IEncodeableFactoryBuilder`, `IType`, JSON / XML / binary encoders, `EncodeableFactory.GlobalFactory`, `IJsonEncodeable`, `ComplexTypes` namespace move | [`docs/migrate/2.0.x/encoders.md`](../../../docs/migrate/2.0.x/encoders.md) |
57+
| Custom NodeManagers, `NodeState` clone / read / write helpers, `Clone``CreateCopy`, `OnAfterCreate(CancellationToken)`, `INodeManager3`, `INodeCache.InvalidateNode`, generics on `BaseVariableState` / `BaseVariableTypeState` | [`docs/migrate/2.0.x/node-states.md`](../../../docs/migrate/2.0.x/node-states.md) |
58+
| `IUserIdentityTokenHandler`, `IClientIdentityProvider`, `IUserTokenAuthenticator`, `IAccessTokenProvider`, `ITokenIssuer`, caller-supplied secrets, secret store | [`docs/migrate/2.0.x/identity.md`](../../../docs/migrate/2.0.x/identity.md) |
59+
| `CertificateValidator` rename (`UA0021`), ref-counted `Certificate` wrapper, `CertificateManager`, `ICertificateProvider`, obsoleted `X509Certificate2` direct-exposure APIs | [`docs/migrate/2.0.x/certificates.md`](../../../docs/migrate/2.0.x/certificates.md) |
60+
| `ApplicationConfiguration` changes, Data-Contract serializer removal, `ParseExtension` / `UpdateExtension` signature, session / browser state persistence | [`docs/migrate/2.0.x/configuration.md`](../../../docs/migrate/2.0.x/configuration.md) |
61+
| `Session``ManagedSession`, V2 subscription engine, GDS-client `Task``ValueTask` modernisation, removed obsolete GDS APIs, durable subscriptions, PubSub, reverse-connect | [`docs/migrate/2.0.x/sessions-subscriptions.md`](../../../docs/migrate/2.0.x/sessions-subscriptions.md) |
62+
| `AlarmConditionState` state-transition behaviour, auto-emitted `GeneralModelChangeEvent`, `ModelChangeAggregator` | [`docs/migrate/2.0.x/alarms-model-change.md`](../../../docs/migrate/2.0.x/alarms-model-change.md) |
63+
| `DateTime.UtcNow`, `Timer`, deterministic-time tests, `System.TimeProvider` adoption | [`docs/migrate/2.0.x/timeprovider.md`](../../../docs/migrate/2.0.x/timeprovider.md) |
6464

6565
If the user's symptom does not obviously map to one row, read
66-
[`Docs/migrate/2.0.x/README.md`](../../../Docs/migrate/2.0.x/README.md) (small —
66+
[`docs/migrate/2.0.x/README.md`](../../../docs/migrate/2.0.x/README.md) (small —
6767
the same table plus a short intro) and pick from there. Avoid loading
6868
multiple sub-docs unless the symptom genuinely spans two areas (for
6969
example, `node-states.md` *and* `types.md` when a NodeManager runs into
@@ -153,7 +153,7 @@ dotnet format analyzers <YourSolution>.sln \
153153
migration window, then peel each entry back as you fix the rule.
154154
- **The legacy `Quickstarts.Servers` meta-package does not exist on 2.0.** If
155155
your project depends on it, switch to a `<ProjectReference>` to
156-
`Applications/Quickstarts.Servers` or to an equivalent project of your own.
156+
`samples/Quickstarts.Servers` or to an equivalent project of your own.
157157

158158
---
159159

@@ -287,7 +287,7 @@ MigrationAnalyzer package is removed.
287287
added inline to each csproj.
288288
- The `OPCFoundation.NetStandard.Opc.Ua.Quickstarts.Servers` meta-package is
289289
not published on 2.0 — consumers must switch to a `<ProjectReference>` to
290-
`Applications/Quickstarts.Servers` or an equivalent first-party project.
290+
`samples/Quickstarts.Servers` or an equivalent first-party project.
291291
- Public APIs returning a `<Type>Collection` will hit `CS0050` because the
292292
generator's shim is `internal` by design — migrate the public surface to
293293
`List<T>` / `ArrayOf<T>` first.
@@ -336,7 +336,7 @@ material. Load them on demand via your agent runtime's
336336

337337
### Canonical upstream docs
338338

339-
- [`Docs/MigrationGuide.md`](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/Docs/MigrationGuide.md) — the human-facing migration guide landing page (~3 KB; intentionally small, just an index across versions).
340-
- [`Docs/migrate/2.0.x/README.md`](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/Docs/migrate/2.0.x/README.md) — the 2.0 migration index + the same symptom → sub-doc table this skill uses.
341-
- [`Docs/migrate/2.0.x/`](https://github.com/OPCFoundation/UA-.NETStandard/tree/master/Docs/migrate/2.0.x) — the 12 thematic sub-docs (telemetry, packages, source-generation, types, encoders, node-states, identity, certificates, configuration, sessions-subscriptions, alarms-model-change, timeprovider).
342-
- [`Tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md`](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/Tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md) — the package's own README, shipped inside the NuGet.
339+
- [`docs/MigrationGuide.md`](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/docs/MigrationGuide.md) — the human-facing migration guide landing page (~3 KB; intentionally small, just an index across versions).
340+
- [`docs/migrate/2.0.x/README.md`](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/docs/migrate/2.0.x/README.md) — the 2.0 migration index + the same symptom → sub-doc table this skill uses.
341+
- [`docs/migrate/2.0.x/`](https://github.com/OPCFoundation/UA-.NETStandard/tree/master/docs/migrate/2.0.x) — the 12 thematic sub-docs (telemetry, packages, source-generation, types, encoders, node-states, identity, certificates, configuration, sessions-subscriptions, alarms-model-change, timeprovider).
342+
- [`tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md`](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md) — the package's own README, shipped inside the NuGet.

.agents/skills/opcua-v20-migration/references/analyzer-rules.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ config.CertificateManager.Options.AcceptError = (cert, error) =>
365365
// or implement ICertificateValidatorEx.ValidateAsync for full control.
366366
```
367367

368-
See [`Docs/migrate/2.0.x/certificates.md`](../../../Docs/migrate/2.0.x/certificates.md)
368+
See [`docs/migrate/2.0.x/certificates.md`](../../../../docs/migrate/2.0.x/certificates.md)
369369
§"Certificate Manager and segregated interfaces" for the structural model in full.
370370

371371
---

.agents/skills/opcua-v20-migration/references/known-gaps.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ happen on plain 1.5.378 too.
6363
not published on 2.0.
6464

6565
**Mitigation:** consumers must switch to a `<ProjectReference>` to
66-
`Applications/Quickstarts.Servers` in this repo, or to an equivalent
66+
`samples/Quickstarts.Servers` in this repo, or to an equivalent
6767
first-party project of their own. All 2.0 packages are published to the
6868
OPC Foundation Azure Artifacts preview feed
6969
(`https://opcfoundation.visualstudio.com/opcua-netstandard/_packaging/opcua-preview/nuget/v3/index.json`)

.agents/skills/opcua-v20-migration/references/migration-patterns.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,7 @@ sc = sc.WithAggregateBits(agg);
698698
4. **Build incrementally.** Fix one priority layer at a time and rebuild to
699699
track progress.
700700
5. **Refer to canonical docs.** The
701-
[`Docs/migrate/2.0.x/`](../../../Docs/migrate/2.0.x/) sub-docs are the
701+
[`docs/migrate/2.0.x/`](../../../../docs/migrate/2.0.x/) sub-docs are the
702702
upstream source of truth — sync this skill against them on every PR.
703703
Use the symptom → sub-doc table in `SKILL.md` to load only the
704704
relevant one.

.agents/skills/opcua-v20-migration/references/package-install.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ Common packages and their 2.0 paths:
7575
| `OPCFoundation.NetStandard.Opc.Ua.Server` | Unchanged name. |
7676
| `OPCFoundation.NetStandard.Opc.Ua.Bindings.Https` | Unchanged name. |
7777
| `OPCFoundation.NetStandard.Opc.Ua.Gds.Common` | **New in 2.0** — intermediate project with shared GDS types. If you reference `Gds.Client.Common` or `Gds.Server.Common`, they now depend on it transitively (no action needed in most cases). |
78-
| `OPCFoundation.NetStandard.Opc.Ua.Quickstarts.Servers` | **Not published on 2.0** — switch to a `<ProjectReference>` to `Applications/Quickstarts.Servers` or equivalent. |
78+
| `OPCFoundation.NetStandard.Opc.Ua.Quickstarts.Servers` | **Not published on 2.0** — switch to a `<ProjectReference>` to `samples/Quickstarts.Servers` or equivalent. |
7979

8080
If your solution already uses **Central Package Management** (`Directory.Packages.props`),
8181
update there instead:

.agents/skills/opcua-v20-migration/references/runtime-shim.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ so call sites bind:
4444
- Sync + APM wrappers for the `GlobalDiscoveryServerClient` /
4545
`LocalDiscoveryServerClient` / `ServerPushConfigurationClient` (UA0015)
4646
- `GlobalDiscoverySampleServer` 1.5.378-shape ctor (in-tree at
47-
`Libraries/Opc.Ua.Gds.Server.Common/GlobalDiscoverySampleServer.cs`) — the 5-arg
47+
`src/Opc.Ua.Gds.Server.Common/GlobalDiscoverySampleServer.cs`) — the 5-arg
4848
variant without `ITelemetryContext`
4949

5050
### Conversion helpers

.agents/skills/opcua-v20-migration/references/source-generator.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ reference (`global::Acme.WaterPump`, `global::Vendor.Devices.BoilerState`, etc).
9292
Zero matches or > 1 matches → the generator emits **no** shim and reports
9393
`MIG01` instead, with the help link pointing at this skill's
9494
[`analyzer-rules.md`](analyzer-rules.md#mig01--generator-cant-resolve-element-type-for-foocollection)
95-
and [`Docs/migrate/2.0.x/source-generation.md`](../../../Docs/migrate/2.0.x/source-generation.md).
95+
and [`docs/migrate/2.0.x/source-generation.md`](../../../../docs/migrate/2.0.x/source-generation.md).
9696

9797
## Generated file shape
9898

.azurepipelines/generate-slnx.ps1

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
.DESCRIPTION
77
Replaces the static `UA Core Library.slnx`. The single source of
88
truth for the project graph is `UA.slnx`; this script reads it,
9-
drops every folder whose name starts with `/Tests/` or
10-
`/Fuzzing/` (and every project inside those folders), and writes
9+
drops every folder whose name starts with `/tests/` or
10+
`/fuzzing/` (and every project inside those folders), and writes
1111
the result.
1212
1313
Whether each remaining project actually produces a NuGet on
@@ -30,7 +30,7 @@
3030
3131
.PARAMETER ExcludeFolderPrefixes
3232
Folder-name prefixes (as they appear inside the source .slnx) to
33-
drop entirely. Default: `/Tests/`, `/Fuzzing/`, `/Solution Items/`.
33+
drop entirely. Default: `/tests/`, `/fuzzing/`, `/Solution Items/`.
3434
Folder matching is whole-name based on the `Name=` attribute, so
3535
`/Solution Items/` and any `/Solution Items/...` sub-folder
3636
matches the prefix.
@@ -43,7 +43,7 @@
4343
param(
4444
[string]$OutputPath,
4545
[string]$SourceSolution,
46-
[string[]]$ExcludeFolderPrefixes = @('/Tests/', '/Fuzzing/', '/Solution Items/')
46+
[string[]]$ExcludeFolderPrefixes = @('/tests/', '/fuzzing/', '/Solution Items/')
4747
)
4848

4949
$ErrorActionPreference = 'Stop'

.azurepipelines/preview.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,10 @@ jobs:
101101
displayName: 'List of assemblies to sign'
102102
inputs:
103103
script: |
104-
dir /b /s Stack\Opc.Ua*.dll > .\list.txt
105-
dir /b /s Tools\Opc.Ua*.dll >> .\list.txt
106-
dir /b /s Libraries\Opc.Ua*.dll >> .\list.txt
107-
dir /b /s Applications\McpServer\bin\Opc.Ua*.dll >> .\list.txt
104+
dir /b /s src\Opc.Ua*.dll > .\list.txt
105+
dir /b /s tools\Opc.Ua*.dll >> .\list.txt
106+
dir /b /s src\Opc.Ua*.dll >> .\list.txt
107+
dir /b /s tools\Opc.Ua.Mcp\bin\Opc.Ua*.dll >> .\list.txt
108108
dir /b /s .azurepipelines\*.* >> .\list.txt
109109
type .\list.txt
110110
- task: CmdLine@2
@@ -127,7 +127,7 @@ jobs:
127127
continueOnError: true
128128
inputs:
129129
command: 'pack'
130-
# Scoped to nuget/ — the MigrationAnalyzer nuspec at Tools/Opc.Ua.MigrationAnalyzer/
130+
# Scoped to nuget/ — the MigrationAnalyzer nuspec at tools/Opc.Ua.MigrationAnalyzer/
131131
# uses MSBuild $(...) substitutions ($(shimBin), $(repoRoot), $(analyzerDll))
132132
# that only `dotnet pack`'s _SetMigrationAnalyzerNuspecProperties target can
133133
# resolve. Standalone `nuget.exe pack` leaves them literal and crashes with

0 commit comments

Comments
 (0)