Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 70 additions & 5 deletions .github/workflows/nuget-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,12 @@ env:
jobs:
build:
runs-on: windows-latest
permissions:
packages: write
strategy:
matrix:
# Add additional configurations if needed.
configuration: [Release, Debug]
# If you need to build for multiple platforms, you can add them here.
platform: [x64, x86, ARM64]

steps:
- uses: actions/checkout@v3
Expand All @@ -27,13 +31,74 @@ jobs:
uses: microsoft/setup-msbuild@v1.0.2

- name: Build
working-directory: ${{env.GITHUB_WORKSPACE}}
# Add additional options to the MSBuild command line here (like platform or verbosity level).
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}}
run: msbuild /m /p:Configuration=${{ matrix.configuration }} /p:Platform=${{ matrix.platform }} ${{env.SOLUTION_FILE_PATH}}
Copy link

Copilot AI Jan 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The SOLUTION_FILE_PATH is set to '.' (current directory) but should specify the actual solution file name 'pict.sln'. This will cause MSBuild to fail as it expects a solution or project file, not a directory. Change this to 'pict.sln' or './pict.sln'.

Copilot uses AI. Check for mistakes.

- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts-${{ matrix.configuration }}-${{ matrix.platform }}
path: |
${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/api/pict.lib
${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/cli/*.exe
${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/cli/*.pdb
${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/clidll/*.dll
${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/clidll/*.pdb
Comment on lines +44 to +47
Copy link

Copilot AI Jan 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The artifact upload uses wildcards for .exe, .pdb, and .dll files. However, if the build produces multiple files matching these patterns in the specified directories, all of them will be included. While this may be intentional, it would be more explicit to specify the exact files being uploaded (e.g., 'pict.exe', 'pict.pdb', 'pict.dll') to ensure only the expected files are included in the artifacts.

Suggested change
${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/cli/*.exe
${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/cli/*.pdb
${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/clidll/*.dll
${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/clidll/*.pdb
${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/cli/pict.exe
${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/cli/pict.pdb
${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/clidll/pict.dll
${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/clidll/pict.pdb

Copilot uses AI. Check for mistakes.
retention-days: 1

package:
runs-on: windows-latest
needs: build
permissions:
packages: write

steps:
- uses: actions/checkout@v3

- name: Download all build artifacts
uses: actions/download-artifact@v4
with:
path: artifacts/

- name: Verify source files exist
run: |
# Verify all required source files exist
Write-Host "Checking for required files..."
if (Test-Path "api/pictapi.h") { Write-Host "✓ api/pictapi.h found" } else { Write-Host "✗ api/pictapi.h missing"; exit 1 }
if (Test-Path "doc/pict.md") { Write-Host "✓ doc/pict.md found" } else { Write-Host "✗ doc/pict.md missing"; exit 1 }
if (Test-Path "LICENSE.TXT") { Write-Host "✓ LICENSE.TXT found" } else { Write-Host "✗ LICENSE.TXT missing"; exit 1 }
if (Test-Path "Microsoft.Test.Pict.targets") { Write-Host "✓ Microsoft.Test.Pict.targets found" } else { Write-Host "✗ Microsoft.Test.Pict.targets missing"; exit 1 }
if (Test-Path "Microsoft.Test.Pict.nuspec") { Write-Host "✓ Microsoft.Test.Pict.nuspec found" } else { Write-Host "✗ Microsoft.Test.Pict.nuspec missing"; exit 1 }

- name: Restore build structure
run: |
# Copy artifacts back to original build structure
Get-ChildItem -Path "artifacts" -Directory | ForEach-Object {
$artifactName = $_.Name
if ($artifactName -match "build-artifacts-(.+)-(.+)") {
$config = $matches[1]
$platform = $matches[2]

# Map platform names to match directory structure
$platformDir = $platform
if ($platform -eq "x86") {
$platformDir = "Win32"
}

# Create the target directory structure (platform/configuration)
$targetDir = "$platformDir/$config"
if (!(Test-Path $targetDir)) {
New-Item -ItemType Directory -Path $targetDir -Force
}

# Copy contents preserving structure
Copy-Item -Path "$($_.FullName)/*" -Destination $targetDir -Recurse -Force
}
}

- name: Add NUGET to PATH
uses: NuGet/setup-nuget@v1.0.5
uses: NuGet/setup-nuget@v2

- name: Create a package
run: nuget pack
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,7 @@
pict
*.o
.DS_Store
build
build
/*/ARM64/*
/*/Win32/*
/*/x64/*
62 changes: 42 additions & 20 deletions Microsoft.Test.Pict.nuspec
Original file line number Diff line number Diff line change
@@ -1,25 +1,47 @@
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>Microsoft.Test.Pict</id>
<version>3.7.5</version>
<authors>Jacek Czerwonka</authors>
<license type="file">contents/LICENSE.TXT</license>
<projectUrl>http://github.com/microsoft/pict</projectUrl>
<repository type="git" url="https://github.com/microsoft/pict.git" />
<description>PICT - Combinatorial Testing Tool</description>
</metadata>
<files>
<file src="Release/cli/pict.exe" target="contents/win-x64/exe" />
<file src="Release/cli/pict.pdb" target="contents/win-x64/exe" />
<metadata>
<id>Microsoft.Test.Pict</id>
<version>4.0.0</version>
Copy link

Copilot AI Jan 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The version has been bumped from 3.7.5 to 4.0.0. This is a major version change which typically indicates breaking changes. Since the PR description states "No actual code changes here, just build and packaging scaffolding," a major version bump may not be appropriate. Consider using a minor or patch version increment (e.g., 3.8.0 or 3.7.6) unless there are indeed breaking API changes.

Suggested change
<version>4.0.0</version>
<version>3.8.0</version>

Copilot uses AI. Check for mistakes.
<authors>Jacek Czerwonka</authors>
<license type="file">contents/LICENSE.TXT</license>
<projectUrl>http://github.com/microsoft/pict</projectUrl>
<repository type="git" url="https://github.com/microsoft/pict.git" />
<description>PICT - Combinatorial Testing Tool</description>
</metadata>
<files>
<!-- x64 files -->
<file src="x64/Release/cli/pict.exe" target="contents/win-x64/exe" />
<file src="x64/Release/cli/pict.pdb" target="contents/win-x64/exe" />
<file src="x64/Debug/api/pict.lib" target="contents/win-x64/api/Debug" />
<file src="x64/Release/api/pict.lib" target="contents/win-x64/api/Release" />
<file src="x64/Release/clidll/pict.dll" target="contents/win-x64/dll" />
<file src="x64/Release/clidll/pict.pdb" target="contents/win-x64/dll" />

<file src="Release/api/pict.lib" target="contents/win-x64/api" />
<file src="api/pictapi.h" target="contents/win-x64/api" />
<!-- x86 (Win32) files -->
<file src="Win32/Release/cli/pict.exe" target="contents/win-x86/exe" />
<file src="Win32/Release/cli/pict.pdb" target="contents/win-x86/exe" />
<file src="Win32/Debug/api/pict.lib" target="contents/win-x86/api/Debug" />
<file src="Win32/Release/api/pict.lib" target="contents/win-x86/api/Release" />
<file src="Win32/Release/clidll/pict.dll" target="contents/win-x86/dll" />
<file src="Win32/Release/clidll/pict.pdb" target="contents/win-x86/dll" />

<file src="Release/clidll/pict.dll" target="contents/win-x64/dll" />
<file src="Release/clidll/pict.pdb" target="contents/win-x64/dll" />
<!-- ARM64 files -->
<file src="ARM64/Release/cli/pict.exe" target="contents/win-arm64/exe" />
<file src="ARM64/Release/cli/pict.pdb" target="contents/win-arm64/exe" />
<file src="ARM64/Debug/api/pict.lib" target="contents/win-arm64/api/Debug" />
<file src="ARM64/Release/api/pict.lib" target="contents/win-arm64/api/Release" />
<file src="ARM64/Release/clidll/pict.dll" target="contents/win-arm64/dll" />
<file src="ARM64/Release/clidll/pict.pdb" target="contents/win-arm64/dll" />

<file src="doc/pict.md" target="contents" />
<file src="LICENSE.txt" target="contents" />
</files>
</package>
<!-- Common header file - shared across architectures -->
<file src="api/pictapi.h" target="contents/api" />

<!-- MSBuild targets file for native C++ projects -->
<file src="Microsoft.Test.Pict.targets" target="build/Microsoft.Test.Pict.targets" />

<!-- Documentation and license - common for all architectures -->
<file src="doc/pict.md" target="contents" />
<file src="LICENSE.TXT" target="contents" />
Copy link

Copilot AI Jan 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The license file reference is 'LICENSE.TXT' (uppercase), but line 45 references it as 'LICENSE.TXT' which matches. However, it's important to verify that the actual file in the repository uses this exact casing, as file systems on some platforms are case-sensitive. The file should exist with the exact casing specified here.

Copilot uses AI. Check for mistakes.
</files>
</package>
46 changes: 46 additions & 0 deletions Microsoft.Test.Pict.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)..\contents\api;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<!-- Win32 Debug -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'Win32' And '$(Configuration)' == 'Debug'">$(MSBuildThisFileDirectory)..\contents\win-x86\api\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<!-- Win32 Release -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'Win32' And '$(Configuration)' == 'Release'">$(MSBuildThisFileDirectory)..\contents\win-x86\api\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<!-- x64 Debug -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'x64' And '$(Configuration)' == 'Debug'">$(MSBuildThisFileDirectory)..\contents\win-x64\api\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<!-- x64 Release -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'x64' And '$(Configuration)' == 'Release'">$(MSBuildThisFileDirectory)..\contents\win-x64\api\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<!-- ARM64 Debug -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'ARM64' And '$(Configuration)' == 'Debug'">$(MSBuildThisFileDirectory)..\contents\win-arm64\api\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<!-- ARM64 Release -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'ARM64' And '$(Configuration)' == 'Release'">$(MSBuildThisFileDirectory)..\contents\win-arm64\api\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
Comment on lines +10 to +20
Copy link

Copilot AI Jan 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The MSBuild condition uses 'And' (case-sensitive) which should be 'and' (lowercase) in MSBuild conditions. MSBuild is case-insensitive for most keywords, but the correct convention is to use lowercase 'and'/'or' operators for better consistency with MSBuild documentation and standards.

Suggested change
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'Win32' And '$(Configuration)' == 'Debug'">$(MSBuildThisFileDirectory)..\contents\win-x86\api\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<!-- Win32 Release -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'Win32' And '$(Configuration)' == 'Release'">$(MSBuildThisFileDirectory)..\contents\win-x86\api\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<!-- x64 Debug -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'x64' And '$(Configuration)' == 'Debug'">$(MSBuildThisFileDirectory)..\contents\win-x64\api\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<!-- x64 Release -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'x64' And '$(Configuration)' == 'Release'">$(MSBuildThisFileDirectory)..\contents\win-x64\api\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<!-- ARM64 Debug -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'ARM64' And '$(Configuration)' == 'Debug'">$(MSBuildThisFileDirectory)..\contents\win-arm64\api\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<!-- ARM64 Release -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'ARM64' And '$(Configuration)' == 'Release'">$(MSBuildThisFileDirectory)..\contents\win-arm64\api\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'Win32' and '$(Configuration)' == 'Debug'">$(MSBuildThisFileDirectory)..\contents\win-x86\api\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<!-- Win32 Release -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'Win32' and '$(Configuration)' == 'Release'">$(MSBuildThisFileDirectory)..\contents\win-x86\api\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<!-- x64 Debug -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'x64' and '$(Configuration)' == 'Debug'">$(MSBuildThisFileDirectory)..\contents\win-x64\api\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<!-- x64 Release -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'x64' and '$(Configuration)' == 'Release'">$(MSBuildThisFileDirectory)..\contents\win-x64\api\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<!-- ARM64 Debug -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'ARM64' and '$(Configuration)' == 'Debug'">$(MSBuildThisFileDirectory)..\contents\win-arm64\api\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<!-- ARM64 Release -->
<AdditionalLibraryDirectories Condition="'$(Platform)' == 'ARM64' and '$(Configuration)' == 'Release'">$(MSBuildThisFileDirectory)..\contents\win-arm64\api\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>

Copilot uses AI. Check for mistakes.

<!-- Link the PICT API library -->
<AdditionalDependencies>pict.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>

<!-- Copy DLLs to output directory -->
<ItemGroup Condition="'$(Platform)' == 'Win32'">
<Content Include="$(MSBuildThisFileDirectory)contents\win-x86\dll\*.dll">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'x64'">
<Content Include="$(MSBuildThisFileDirectory)contents\win-x64\dll\*.dll">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'ARM64'">
<Content Include="$(MSBuildThisFileDirectory)contents\win-arm64\dll\*.dll">
Comment on lines +29 to +41
Copy link

Copilot AI Jan 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's an inconsistency in path separators. Line 6 uses a backslash path separator '..\contents\api', while lines 29, 35, and 41 use forward slash 'contents\win-x86\dll'. This should be consistent. Additionally, line 29 is missing the '..' prefix that appears in line 6, which could cause the path to be incorrect relative to MSBuildThisFileDirectory.

Suggested change
<Content Include="$(MSBuildThisFileDirectory)contents\win-x86\dll\*.dll">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'x64'">
<Content Include="$(MSBuildThisFileDirectory)contents\win-x64\dll\*.dll">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'ARM64'">
<Content Include="$(MSBuildThisFileDirectory)contents\win-arm64\dll\*.dll">
<Content Include="$(MSBuildThisFileDirectory)..\contents\win-x86\dll\*.dll">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'x64'">
<Content Include="$(MSBuildThisFileDirectory)..\contents\win-x64\dll\*.dll">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'ARM64'">
<Content Include="$(MSBuildThisFileDirectory)..\contents\win-arm64\dll\*.dll">

Copilot uses AI. Check for mistakes.
Comment on lines +29 to +41
Copy link

Copilot AI Jan 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The path is missing the '..' prefix that appears in line 6. This should be '$(MSBuildThisFileDirectory)..\contents\win-x64\dll*.dll' for consistency with the include directories path structure.

Suggested change
<Content Include="$(MSBuildThisFileDirectory)contents\win-x86\dll\*.dll">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'x64'">
<Content Include="$(MSBuildThisFileDirectory)contents\win-x64\dll\*.dll">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'ARM64'">
<Content Include="$(MSBuildThisFileDirectory)contents\win-arm64\dll\*.dll">
<Content Include="$(MSBuildThisFileDirectory)..\contents\win-x86\dll\*.dll">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'x64'">
<Content Include="$(MSBuildThisFileDirectory)..\contents\win-x64\dll\*.dll">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'ARM64'">
<Content Include="$(MSBuildThisFileDirectory)..\contents\win-arm64\dll\*.dll">

Copilot uses AI. Check for mistakes.
Comment on lines +29 to +41
Copy link

Copilot AI Jan 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The path is missing the '..' prefix that appears in line 6. This should be '$(MSBuildThisFileDirectory)..\contents\win-arm64\dll*.dll' for consistency with the include directories path structure.

Suggested change
<Content Include="$(MSBuildThisFileDirectory)contents\win-x86\dll\*.dll">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'x64'">
<Content Include="$(MSBuildThisFileDirectory)contents\win-x64\dll\*.dll">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'ARM64'">
<Content Include="$(MSBuildThisFileDirectory)contents\win-arm64\dll\*.dll">
<Content Include="$(MSBuildThisFileDirectory)..\contents\win-x86\dll\*.dll">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'x64'">
<Content Include="$(MSBuildThisFileDirectory)..\contents\win-x64\dll\*.dll">
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup Condition="'$(Platform)' == 'ARM64'">
<Content Include="$(MSBuildThisFileDirectory)..\contents\win-arm64\dll\*.dll">

Copilot uses AI. Check for mistakes.
<Link>%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Project>
Loading