From c4d290b0b609c242535581c2baf93e52f8191af8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 29 Jul 2026 06:55:44 +0000 Subject: [PATCH 1/7] Merge Windows assets per package instead of across all of artifacts --- build/AddWindowsAssets.sh | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/build/AddWindowsAssets.sh b/build/AddWindowsAssets.sh index 44adc97..d4afd7a 100755 --- a/build/AddWindowsAssets.sh +++ b/build/AddWindowsAssets.sh @@ -74,10 +74,11 @@ fi WIN1_DIR="$OUTPUT/.win9-pass" WIN2_DIR="$OUTPUT/.win10-pass" +PRIMARY_DIR="$OUTPUT/.primary" MERGED_DIR="$OUTPUT/.merged" SDK10_DIR="$(mktemp -d)" -trap 'rm -rf "$SDK10_DIR" "$WIN1_DIR" "$WIN2_DIR" "$MERGED_DIR"' EXIT +trap 'rm -rf "$SDK10_DIR" "$WIN1_DIR" "$WIN2_DIR" "$PRIMARY_DIR" "$MERGED_DIR"' EXIT cat > "$SDK10_DIR/global.json" < packing $package windows heads ($PASS1_BAND band)" dotnet pack "$project" \ @@ -108,13 +109,29 @@ for package in $PACKAGES; do $VERSION_ARG \ -o "$WIN2_DIR") + # merge-packages.py merges every package it finds in the primary directory, so the primary + # here cannot be artifacts/ itself: that holds all the packages, while the Windows passes hold + # only the one just packed, and every other id would be reported as having no counterpart. + # Stage just this package's files — the pass directory names them, so no version is needed. + echo "==> merging windows target frameworks into $package" + mkdir -p "$PRIMARY_DIR" + for asset in "$WIN1_DIR"/*.nupkg "$WIN1_DIR"/*.snupkg; do + [ -f "$asset" ] || continue + name=$(basename "$asset") + if [ ! -f "$OUTPUT/$name" ]; then + echo "error: $name is not in $OUTPUT — run build/BuildNugets.sh on macOS first and" >&2 + echo " bring its artifacts/ here, at the same version." >&2 + exit 1 + fi + cp "$OUTPUT/$name" "$PRIMARY_DIR/$name" + done + # Merged in two steps because merge-packages.py takes one additional directory at a time, and # into a scratch directory because it will not read and write the same place. - echo "==> merging windows target frameworks into $package" - python3 "$ROOT/build/merge-packages.py" "$OUTPUT" "$WIN1_DIR" "$MERGED_DIR" + python3 "$ROOT/build/merge-packages.py" "$PRIMARY_DIR" "$WIN1_DIR" "$MERGED_DIR" python3 "$ROOT/build/merge-packages.py" "$MERGED_DIR" "$WIN2_DIR" "$OUTPUT" done -rm -rf "$WIN1_DIR" "$WIN2_DIR" "$MERGED_DIR" +rm -rf "$WIN1_DIR" "$WIN2_DIR" "$PRIMARY_DIR" "$MERGED_DIR" echo "==> windows assets added to $OUTPUT" From 0d442689c0adec65930d5c99c4be8bf86f113b02 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 29 Jul 2026 08:02:38 +0000 Subject: [PATCH 2/7] Keep OpenTok.Client's native payload out of the Windows resource indexes --- src/OpenTok.Net.Maui/OpenTok.Net.Maui.csproj | 48 ++++++++++++++++++++ src/OpenTok.Net/OpenTok.Net.csproj | 26 ++++++++++- 2 files changed, 72 insertions(+), 2 deletions(-) diff --git a/src/OpenTok.Net.Maui/OpenTok.Net.Maui.csproj b/src/OpenTok.Net.Maui/OpenTok.Net.Maui.csproj index c7cfde6..3c16a0a 100644 --- a/src/OpenTok.Net.Maui/OpenTok.Net.Maui.csproj +++ b/src/OpenTok.Net.Maui/OpenTok.Net.Maui.csproj @@ -53,4 +53,52 @@ + + + + + + + + + <_OpenTokMissingPriPayloadFiles Include="@(_AllChildProjectItemsWithTargetPath)" + Condition=" !Exists('%(FullPath)') " /> + <_AllChildProjectItemsWithTargetPath Remove="@(_OpenTokMissingPriPayloadFiles)" /> + + + + + diff --git a/src/OpenTok.Net/OpenTok.Net.csproj b/src/OpenTok.Net/OpenTok.Net.csproj index 9444020..37f447e 100644 --- a/src/OpenTok.Net/OpenTok.Net.csproj +++ b/src/OpenTok.Net/OpenTok.Net.csproj @@ -42,8 +42,30 @@ own reference list rather than arriving transitively. --> - - + + + + + + <_OpenTokMissingPriPayloadFiles Include="@(_AllChildProjectItemsWithTargetPath)" + Condition=" !Exists('%(FullPath)') " /> + <_AllChildProjectItemsWithTargetPath Remove="@(_OpenTokMissingPriPayloadFiles)" /> + + + + +