2023-11-09 14:57:52 +00:00
|
|
|
<Project>
|
|
|
|
|
<Sdk Name="Microsoft.Build.CopyOnWrite" Version="1.0.282" />
|
2024-01-15 13:45:28 -08:00
|
|
|
|
|
|
|
|
<Import Project="$(MSBuildCachePackageRoot)\build\$(MSBuildCachePackageName).targets" Condition="'$(MSBuildCacheEnabled)' == 'true'" />
|
|
|
|
|
<Import Project="$(MSBuildCacheSharedCompilationPackageRoot)\build\Microsoft.MSBuildCache.SharedCompilation.targets" Condition="'$(MSBuildCacheEnabled)' == 'true'" />
|
2025-09-26 13:03:00 +08:00
|
|
|
|
|
|
|
|
<!-- Override ManifestTool to the x64 host tool under WindowsSdkDir for all projects once the SDK path is known. -->
|
|
|
|
|
<PropertyGroup Label="ManifestToolOverride">
|
|
|
|
|
<ManifestTool Condition="Exists('$(WindowsSdkDir)bin\x64\mt.exe')">$(WindowsSdkDir)bin\x64\mt.exe</ManifestTool>
|
|
|
|
|
</PropertyGroup>
|
2025-12-16 10:46:39 +08:00
|
|
|
|
|
|
|
|
<!-- Auto-restore NuGet for native vcxproj (PackageReference) when building inside VS -->
|
|
|
|
|
<Target Name="EnsureNuGetRestoreForVcxproj" BeforeTargets="PrepareForBuild" Condition="
|
|
|
|
|
'$(BuildingInsideVisualStudio)' == 'true'
|
|
|
|
|
and '$(DesignTimeBuild)' != 'true'
|
|
|
|
|
and '$(RestoreInProgress)' != 'true'
|
|
|
|
|
and '$(MSBuildProjectExtension)' == '.vcxproj'
|
|
|
|
|
and '$(RestoreProjectStyle)' == 'PackageReference'
|
|
|
|
|
and '$(MSBuildProjectExtensionsPath)' != ''
|
|
|
|
|
and !Exists('$(MSBuildProjectExtensionsPath)project.assets.json')
|
|
|
|
|
">
|
|
|
|
|
|
|
|
|
|
<Message Importance="normal" Text="NuGet assets missing for $(MSBuildProjectName); running Restore...; IntDir=$(IntDir); BaseIntermediateOutputPath=$(BaseIntermediateOutputPath)" />
|
|
|
|
|
|
|
|
|
|
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="Restore" Properties="RestoreInProgress=true" BuildInParallel="false" />
|
|
|
|
|
</Target>
|
Fix pipeline with waskd2 experimental version (#44357)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This pull request includes two main groups of changes: improvements to
build configuration (specifically, warning suppression for experimental
features), and refactoring in the `WrapPanelCustom` control to use the
correct `StretchChild` type from the CommunityToolkit. These updates
help streamline the build process and improve code clarity and
maintainability.
**Build configuration improvements:**
* Added `/p:IgnoreExperimentalWarnings=true` to the
`RestoreAdditionalProjectSourcesArg` in the build pipeline to enable
suppression of experimental warnings during project restore.
* Updated `Directory.Build.targets` to append specific warning codes
(`CS8305`, `SA1500`, `CA1852`) to the `NoWarn` property when
`IgnoreExperimentalWarnings` is set, suppressing these warnings during
builds.
**Refactoring in `WrapPanelCustom`:**
* Updated the `WrapPanel` control in `WrapPanel.cs` to use
`ToolkitStretchChild` from `CommunityToolkit.WinUI.Controls` instead of
a local `StretchChild` type, ensuring consistency and leveraging the
toolkit's implementation.
[[1]](diffhunk://#diff-53e4c6a2890b6fb1c66ea8a19f0049070910083608f8fb80c2b1f5a8d254d007R11-R12)
[[2]](diffhunk://#diff-53e4c6a2890b6fb1c66ea8a19f0049070910083608f8fb80c2b1f5a8d254d007L180-R184)
[[3]](diffhunk://#diff-53e4c6a2890b6fb1c66ea8a19f0049070910083608f8fb80c2b1f5a8d254d007L193-R197)
[[4]](diffhunk://#diff-53e4c6a2890b6fb1c66ea8a19f0049070910083608f8fb80c2b1f5a8d254d007L400-R402)
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [ ] Closes: #xxx
<!-- - [ ] Closes: #yyy (add separate lines for additional resolved
issues) -->
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx
<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments
<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2025-12-19 16:02:17 +08:00
|
|
|
|
|
|
|
|
<PropertyGroup Condition="'$(IgnoreExperimentalWarnings)' == 'true'">
|
|
|
|
|
<NoWarn>$(NoWarn);CS8305;SA1500;CA1852</NoWarn>
|
|
|
|
|
</PropertyGroup>
|
Build: Fix release pipeline and local build failure (#45211)
## Summary of the Pull Request
Release pipeline is keeping failed, and local build failed at ut.
This pull request introduces changes to improve how test projects are
handled during release builds, ensuring that test code is not compiled
or analyzed when not needed - in doing release build, to - succeed the
execution and reduce built time.
And, to upgrade from VS17 to VS18 in cmdpal sdk build, this is to keep
consistency with all other build step
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [ ] Closes: #xxx
<!-- - [ ] Closes: #yyy (add separate lines for additional resolved
issues) -->
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx
<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments
<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
Local build & release pipeline build should all pass:
Local build:
<img width="1815" height="281" alt="image"
src="https://github.com/user-attachments/assets/f350cf3f-b856-432d-97f3-e392d38ef7fa"
/>
Release pipeline is working too:
<img width="1195" height="163" alt="image"
src="https://github.com/user-attachments/assets/ce58de38-f0fb-45ad-9d70-2b8eb1c4db60"
/>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-02 09:15:53 +08:00
|
|
|
|
|
|
|
|
<!-- Skipped test projects when BuildTests=false: no-op build and remove references.
|
|
|
|
|
This must be in targets (not props) so it runs AFTER the project file adds its items. -->
|
|
|
|
|
<PropertyGroup Condition="'$(_IsSkippedTestProject)' == 'true'">
|
|
|
|
|
<BuildDependsOn />
|
|
|
|
|
<CoreBuildDependsOn />
|
|
|
|
|
<RebuildDependsOn />
|
|
|
|
|
</PropertyGroup>
|
|
|
|
|
|
|
|
|
|
<!-- For C# projects: remove all items -->
|
|
|
|
|
<ItemGroup Condition="'$(_IsSkippedTestProject)' == 'true' and '$(MSBuildProjectExtension)' == '.csproj'">
|
|
|
|
|
<PackageReference Remove="@(PackageReference)" />
|
|
|
|
|
<ProjectReference Remove="@(ProjectReference)" />
|
|
|
|
|
<Reference Remove="@(Reference)" />
|
|
|
|
|
<Compile Remove="@(Compile)" />
|
|
|
|
|
<Content Remove="@(Content)" />
|
|
|
|
|
<EmbeddedResource Remove="@(EmbeddedResource)" />
|
|
|
|
|
<None Remove="@(None)" />
|
|
|
|
|
<Using Remove="@(Using)" />
|
|
|
|
|
<GlobalUsing Remove="@(GlobalUsing)" />
|
|
|
|
|
</ItemGroup>
|
|
|
|
|
|
|
|
|
|
<!-- For C++ projects (vcxproj): remove all compile/link items to prevent build -->
|
|
|
|
|
<ItemGroup Condition="'$(_IsSkippedTestProject)' == 'true' and '$(MSBuildProjectExtension)' == '.vcxproj'">
|
|
|
|
|
<ClCompile Remove="@(ClCompile)" />
|
|
|
|
|
<ClInclude Remove="@(ClInclude)" />
|
|
|
|
|
<Link Remove="@(Link)" />
|
|
|
|
|
<Lib Remove="@(Lib)" />
|
|
|
|
|
<ProjectReference Remove="@(ProjectReference)" />
|
|
|
|
|
<None Remove="@(None)" />
|
|
|
|
|
<ResourceCompile Remove="@(ResourceCompile)" />
|
|
|
|
|
<Midl Remove="@(Midl)" />
|
|
|
|
|
</ItemGroup>
|
|
|
|
|
|
|
|
|
|
<!-- Note: For C++ skipped test projects, build is effectively skipped by removing all compile items above.
|
|
|
|
|
We don't define empty Build/Rebuild/Clean targets here because MSBuild Target definitions with Condition
|
|
|
|
|
on the Target element still override the default targets even when condition is false. -->
|
|
|
|
|
</Project>
|