## Description
Projects "built for Fabric" depend on the `Microsoft.WindowsAppSDK`, while projects "built for Paper" rely on `Microsoft.UI.Xaml`, both of which are mutually exclusive. This leads to a lot of PRs with a spurious flip-flopping of the contents of nuget package lock files, depending on which flavor the author happened to build against.
This PR enables a new separate fabric lock file for projects and also updates all of the lock files.
### Type of Change
- New feature (non-breaking change which adds functionality)
### Why
This makes it so that local builds of RNW are closer to the the same nuget restore behavior / packages.lock.json file as when they're built in pipelines, namely to reduce the number of spurious lock file changes we see in PRs.
This is part is working toward resolving #12004 and this functionality was extracted from PR #13634.
### What
For projects building within our repo that can be built as either Paper or Fabric variants, we now maintain a separate "fabric" nuget lock file: `packages.fabric.lock.json` alongside the normal `packages.lock.json` file (which can be either "paper" or "fabric" depending on what the project normally builds with).
## Screenshots
N/A
## Testing
N/A
## Changelog
Should this change be included in the release notes: _yes_
Create separate NuGet restore lock files for Fabric builds
* Add ARM64EC Platform
* Add property sheets
* Add packages.lock.json
* Upgrade WinSDK version for C/C++ projects
Older SDK versions do not contain softintrin.h
See http://www.emulators.com/docs/abc_arm64ec_explained.htm
* Do not build Integration Test projects for ARM64EC
* Make V8Platform x64 for ARM64EC
* Override HermesPlatform for ARM64EC
* Override WinAppSDK platforms for ARM64EC
* Exclude OpenSSL on Desktop DLL for ARM64EC
* Override WinAppSDK _MrtCoreRuntimeIdentifier
* Update packages.lock.json
* Add explicit LIB dependencies for ARM64EC
* Skip React.Windows.IntegrationTests on ARM64EC
* Change files
* Simplify condition for WindowsAppSDKOverrides
* Switch from ARM64 to ARM64EC in Desktop CI
* Update prepare-build-env.yml
* Enable ARM64EC on PullRequest env
* Remove OpenSSL from Desktop LIB and DLL
* /t:Vars - Log SolutionName
* Ensure restore command is run on a single line
* Allow rnw-dependencies to install NuGet
* Use NuGet 5.8 on demand
* Change files
* Update change/@react-native-windows-cli-eda6a4d0-c02d-416d-a40a-503d009ed4f9.json
Co-authored-by: Nick Gerleman <nick@nickgerleman.com>
* Upgrade to just-scripts 1.3.3
* Revert rnw-dependencies.ps1
* Update yarn lock
* Allow BeforeResolveReferences to restore PackageReference and packages.config
* Use MSBuild to restore packages.config in `yarn windows`
* Drop package nuget-exe
* E2E gitignore add .vscode/
* Remove boost from E2E packages.config
* yarn lint
* Remove nuget-*exe from lage
Co-authored-by: Nick Gerleman <nick@nickgerleman.com>
* Migrate `vnext` projects to `PackageReference`.
* Allow `run-windows` to directly restore `package.config` files when conflicting with `PackageReference` items.
* Allow parameterizing package names and versions which can be handled as any MSBuild property.
* Migrate C++ templates to `PackageReference`.
* Drop `packages` directory for `vnext` projects NuGet dependencies.\
Dependencies will be accessed directly at the downloaded NuGet `globalPackagesFolder` using `msbuild /restore`.\
This removes redundant copies of downloaded packages.
* Remove extra definition of ReactNativeWindowsDir
ReactNativeWindowDir is normally defined in the top-level app/lib project, using logic that emulates node resolution. There is a second definition in external property sheets, that may be defined if folks have a custom project without defining ReactNativeWindowsDir. This falls down, since we use ReactNativeWindowsDir before it is defined in the file.
This change removes the second copy of ReactNativeWindowsDir, and adds an error to try to catch folks homebrewing their own project.
* Change files
* Convert Error to target and add more details
* Working warning logic
* Revert test change
* lowercase for style
* aka
* indentation
* dir cleanup
* ProjectName
* no-caps
* path consistency in repo
* logging
* Fix
* No extra slash
* Remove BaseOutDir Usage
* revert
* remove usages
* Upgrade Windows SDK to 10.0.19041.0
* Change files
* Move configuration-dependent properties to the appropriate props file
* Update links and comments
* Set V8AppPlatform in Desktop integration tests
* Fix integration-test.yml targetPath
* Default solution to x64
* Make class TestTransaction non-final
* Native build logic shouldn't delete PCH's on all CI machines
Fixes#7866
Discovered this logic, which paves our PCH's after build, specifically when running on CI machines (`Condition="'$(AGENT_ID)' != ''"`)
This was added when our specific infra was running into file-size issues with E2ETest, and a second VS toolset. It is really specific to what our environment was seeing, and really shouldn't be run on every user build.
We've since then alleviated our own CI setup issues, and reduced our disk footprint on PCHs and other binaries. Removing this logic unless we see new disk space issues.
* Change files
* update to newer cppwinrt, 2-3% reduction in binary size
* Change files
* more packages.config
* props/targets
* update template project cppwinrt version
* Change files
* Update packages to new cppwinrt version
* Change files
* restore comment in packages.config
* Add HostingContract to playground-win32
* Remove AppX from win32 project
* Use new nuget
* Workaround for cppwinrt bug #452
* Add Targets to check that developers have run yarn install before building
* Change files
* Update Directory.Build.targets
Co-authored-by: Alexander Sklar <asklar@microsoft.com>
* Update Directory.Build.targets
* Add package.json steps
* Add dummy marker to avoid globs of package.json being picked up
Co-authored-by: Alexander Sklar <asklar@microsoft.com>
* Manually set Lib and Include paths for Hermes
* Change files
* Use PlatformTarget for Hermes path resolution
* Parameterize path for JSI_Source
* MUFA: Make USE_HERMES False Again!
* Remove redundant FollyDir vars logging
* Bump min. Windows Desktop supported version to 8.
* Use WinVer property to set _WIN32_WINNT.
* Drop _WIN32_WINNT in favor of WINVER.
* Place ControlFlowGuard in the appropriate Property Sheet.
* Change files