mirror of
https://github.com/PrismLibrary/Prism.git
synced 2026-10-16 20:51:12 +08:00
Update container packages to 10.0.94-pre
This commit is contained in:
@@ -1,9 +1,12 @@
|
|||||||
<Project>
|
<Project>
|
||||||
|
<PropertyGroup>
|
||||||
|
<PrismNativeAotContainerVersion Condition="'$(PrismNativeAotContainerVersion)' == ''">10.0.94-pre</PrismNativeAotContainerVersion>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageVersion Include="PolySharp" Version="1.15.0" />
|
<PackageVersion Include="PolySharp" Version="1.15.0" />
|
||||||
<PackageVersion Include="Prism.Container.Abstractions" Version="10.0.82-pre" />
|
<PackageVersion Include="Prism.Container.Abstractions" Version="10.0.94-pre" />
|
||||||
<PackageVersion Include="Prism.Container.DryIoc" Version="10.0.82-pre" />
|
<PackageVersion Include="Prism.Container.DryIoc" Version="10.0.94-pre" />
|
||||||
<PackageVersion Include="Prism.Container.Unity" Version="10.0.82-pre" />
|
<PackageVersion Include="Prism.Container.Unity" Version="10.0.94-pre" />
|
||||||
<PackageVersion Include="System.ValueTuple" Version="4.5.0" />
|
<PackageVersion Include="System.ValueTuple" Version="4.5.0" />
|
||||||
<PackageVersion Include="System.Reactive" Version="6.0.1" />
|
<PackageVersion Include="System.Reactive" Version="6.0.1" />
|
||||||
<PackageVersion Include="Xamarin.Forms" Version="5.0.0.2401" />
|
<PackageVersion Include="Xamarin.Forms" Version="5.0.0.2401" />
|
||||||
|
|||||||
@@ -29,28 +29,20 @@ project maps this opt-in to `PublishAot=true` and `UseInterpreter=false`. Do not
|
|||||||
pass `PublishAot` globally: that also reaches referenced libraries.
|
pass `PublishAot` globally: that also reaches referenced libraries.
|
||||||
The opt-in does not set `PublishAot` on libraries. Ordinary sample builds keep
|
The opt-in does not set `PublishAot` on libraries. Ordinary sample builds keep
|
||||||
DryIoc. Validation builds select the real `Prism.Container.Microsoft` adapter;
|
DryIoc. Validation builds select the real `Prism.Container.Microsoft` adapter;
|
||||||
`PrismNativeAotContainerVersion` is mandatory and has no guessed default. Central
|
the central package configuration pins Containers **10.0.94-pre**, including
|
||||||
package configuration uses this same version for Abstractions in referenced
|
Abstractions and its shared generator in referenced source libraries.
|
||||||
source libraries, so they receive the updated shared generator.
|
Restore from a configured Prism package feed that contains this published version.
|
||||||
|
No version override or local container build is needed for this baseline.
|
||||||
|
`PrismNativeAotContainerVersion` remains available for deliberate matching local
|
||||||
|
Microsoft/Abstractions package builds; see the optional instructions below.
|
||||||
|
Do not use stand-in containers or copy implementation types into the demo.
|
||||||
|
|
||||||
Prepare matching **real** Microsoft and Abstractions packages from the
|
For a supported iOS device toolchain, publish the existing app from the repo root:
|
||||||
`ds/native-aot-binding-preservation` branch of `PrismLibrary/Prism.Containers`.
|
|
||||||
Pack both existing projects into a local NuGet feed under one deliberate local
|
|
||||||
prerelease version; Abstractions must contain its shared generator/analyzer.
|
|
||||||
Alternatively use the exact matching packages from an authorized private feed.
|
|
||||||
Do not publish new package versions for this validation. Restore the app and all
|
|
||||||
its source dependencies against that feed. Do not use stand-in containers or
|
|
||||||
copy implementation types into the demo. Package/framework compatibility and
|
|
||||||
feed access must be resolved before treating the native lane as runnable.
|
|
||||||
|
|
||||||
For a supported iOS device toolchain, publish the existing app from the repo root
|
|
||||||
with the exact version you packed (replace the placeholder):
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
dotnet publish e2e/Maui/PrismMauiDemo/PrismMauiDemo.csproj \
|
dotnet publish e2e/Maui/PrismMauiDemo/PrismMauiDemo.csproj \
|
||||||
-c Release -f net10.0-ios -r ios-arm64 \
|
-c Release -f net10.0-ios -r ios-arm64 \
|
||||||
-p:PrismNativeAotValidation=true \
|
-p:PrismNativeAotValidation=true
|
||||||
-p:PrismNativeAotContainerVersion=YOUR_MATCHING_LOCAL_VERSION
|
|
||||||
```
|
```
|
||||||
|
|
||||||
The [MAUI NativeAOT requirements](https://learn.microsoft.com/en-us/dotnet/maui/deployment/nativeaot?view=net-maui-10.0)
|
The [MAUI NativeAOT requirements](https://learn.microsoft.com/en-us/dotnet/maui/deployment/nativeaot?view=net-maui-10.0)
|
||||||
@@ -73,14 +65,16 @@ No mobile CI jobs or workflow changes are part of this local validation work.
|
|||||||
|
|
||||||
## Build the real local container packages
|
## Build the real local container packages
|
||||||
|
|
||||||
|
Optional: only needed when testing further unpublished container changes.
|
||||||
|
|
||||||
Use a full checkout of `PrismLibrary/Prism.Containers` on
|
Use a full checkout of `PrismLibrary/Prism.Containers` on
|
||||||
`ds/native-aot-binding-preservation`, with the SDKs required by that checkout's
|
the intended source commit (the published baseline is merge `f3e51fbb`), with the SDKs required by that checkout's
|
||||||
normal supported target frameworks. Do not manufacture netstandard targets or
|
normal supported target frameworks. Do not manufacture netstandard targets or
|
||||||
replace the container with a shim. From that checkout, choose one local-only
|
replace the container with a shim. From that checkout, choose one local-only
|
||||||
prerelease version for both existing projects:
|
prerelease version for both existing projects:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
export PRISM_CONTAINER_VERSION=10.0.83-bindingfixlocal2
|
export PRISM_CONTAINER_VERSION=10.0.95-bindingfixlocal
|
||||||
export PRISM_CONTAINER_FEED="$HOME/prism-native-aot-packages"
|
export PRISM_CONTAINER_FEED="$HOME/prism-native-aot-packages"
|
||||||
dotnet pack src/Prism.Container.Abstractions/Prism.Container.Abstractions.csproj \
|
dotnet pack src/Prism.Container.Abstractions/Prism.Container.Abstractions.csproj \
|
||||||
-c Release -p:DISABLE_GITVERSIONING=true \
|
-c Release -p:DISABLE_GITVERSIONING=true \
|
||||||
|
|||||||
@@ -77,7 +77,7 @@
|
|||||||
<Target Name="ValidateNativeAotConfiguration" BeforeTargets="CollectPackageReferences;PrepareForBuild"
|
<Target Name="ValidateNativeAotConfiguration" BeforeTargets="CollectPackageReferences;PrepareForBuild"
|
||||||
Condition="'$(PrismNativeAotValidation)' == 'true'">
|
Condition="'$(PrismNativeAotValidation)' == 'true'">
|
||||||
<Error Condition="'$(PrismNativeAotContainerVersion)' == ''"
|
<Error Condition="'$(PrismNativeAotContainerVersion)' == ''"
|
||||||
Text="NativeAOT validation requires PrismNativeAotContainerVersion from matching real Prism.Container.Microsoft and Prism.Container.Abstractions local/private packages. See the app's NativeAOT validation instructions; no package version is assumed." />
|
Text="NativeAOT validation requires matching real Prism.Container.Microsoft and Prism.Container.Abstractions packages. Use the centrally pinned version or set PrismNativeAotContainerVersion to an explicit local build." />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
<Target Name="ValidateNativeAotBuild" BeforeTargets="PrepareForBuild"
|
<Target Name="ValidateNativeAotBuild" BeforeTargets="PrepareForBuild"
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
<Target Name="ValidateNativeAotConfiguration" BeforeTargets="CollectPackageReferences;PrepareForBuild"
|
<Target Name="ValidateNativeAotConfiguration" BeforeTargets="CollectPackageReferences;PrepareForBuild"
|
||||||
Condition="'$(PrismNativeAotValidation)' == 'true'">
|
Condition="'$(PrismNativeAotValidation)' == 'true'">
|
||||||
<Error Condition="'$(PrismNativeAotContainerVersion)' == ''"
|
<Error Condition="'$(PrismNativeAotContainerVersion)' == ''"
|
||||||
Text="NativeAOT validation requires PrismNativeAotContainerVersion from matching real Prism.Container.Microsoft and Prism.Container.Abstractions local/private packages. See the app's NativeAOT validation instructions; no package version is assumed." />
|
Text="NativeAOT validation requires matching real Prism.Container.Microsoft and Prism.Container.Abstractions packages. Use the centrally pinned version or set PrismNativeAotContainerVersion to an explicit local build." />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
<Target Name="ValidateNativeAotBuild" BeforeTargets="PrepareForBuild"
|
<Target Name="ValidateNativeAotBuild" BeforeTargets="PrepareForBuild"
|
||||||
|
|||||||
@@ -57,29 +57,25 @@ an independent INPC model base with inherited title/visibility properties.
|
|||||||
Validation selects the actual `Prism.Container.Microsoft` adapter via
|
Validation selects the actual `Prism.Container.Microsoft` adapter via
|
||||||
`CreateContainerExtension` on the container-neutral `PrismApplicationBase`. The
|
`CreateContainerExtension` on the container-neutral `PrismApplicationBase`. The
|
||||||
validation build references Prism.Uno directly and does not reference the DryIoc
|
validation build references Prism.Uno directly and does not reference the DryIoc
|
||||||
adapter. Supply the required `PrismNativeAotContainerVersion`
|
adapter. Central package configuration pins Microsoft and Abstractions, including
|
||||||
from matching real Microsoft and Abstractions local/private packages; no default
|
its shared analyzer in referenced source libraries, to published **10.0.94-pre**.
|
||||||
version is assumed. The same version supplies Abstractions and its shared
|
Restore from a configured Prism package feed containing this version. No version
|
||||||
analyzer to the referenced source libraries. Pack the two existing container
|
override or local container build is needed for this baseline. The optional
|
||||||
projects from `PrismLibrary/Prism.Containers` branch
|
`PrismNativeAotContainerVersion` property selects matching real local packages
|
||||||
`ds/native-aot-binding-preservation` into a local feed with one intentional local
|
when testing further unpublished container changes. Do not substitute a container
|
||||||
prerelease version, then restore this app and its dependencies from that feed.
|
shim. Resolve package/framework compatibility before native publishing. Do
|
||||||
Do not publish packages or substitute a container shim. Resolve package/framework
|
|
||||||
compatibility before native publishing. Do
|
|
||||||
not pass `PublishAot` globally, since that propagates to referenced libraries. NativeAOT qualification requires a supported SDK/platform/RID and a
|
not pass `PublishAot` globally, since that propagates to referenced libraries. NativeAOT qualification requires a supported SDK/platform/RID and a
|
||||||
verified NativeAOT-compatible real container configuration, followed by a local
|
verified NativeAOT-compatible real container configuration, followed by a local
|
||||||
publish and device run. Record exact versions and every trimming/AOT warning.
|
publish and device run. Record exact versions and every trimming/AOT warning.
|
||||||
Cloud source/XML checks are not a NativeAOT or device pass. No mobile CI jobs or
|
Cloud source/XML checks are not a NativeAOT or device pass. No mobile CI jobs or
|
||||||
workflow changes are included.
|
workflow changes are included.
|
||||||
|
|
||||||
For a supported Uno iOS NativeAOT toolchain, use the exact local/private package
|
For a supported Uno iOS NativeAOT toolchain:
|
||||||
version (replace the placeholder):
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
dotnet publish e2e/Uno/HelloWorld/HelloWorld.csproj \
|
dotnet publish e2e/Uno/HelloWorld/HelloWorld.csproj \
|
||||||
-c Release -f net10.0-ios -r ios-arm64 \
|
-c Release -f net10.0-ios -r ios-arm64 \
|
||||||
-p:PrismNativeAotValidation=true \
|
-p:PrismNativeAotValidation=true
|
||||||
-p:PrismNativeAotContainerVersion=YOUR_MATCHING_LOCAL_VERSION
|
|
||||||
```
|
```
|
||||||
|
|
||||||
[Uno 6.6 NativeAOT guidance](https://platform.uno/docs/articles/features/native-aot.html)
|
[Uno 6.6 NativeAOT guidance](https://platform.uno/docs/articles/features/native-aot.html)
|
||||||
@@ -88,11 +84,11 @@ experimental XA1040 warning. For Android, use the same command with
|
|||||||
`-f net10.0-android -r android-arm64` and inspect the warning and device results.
|
`-f net10.0-android -r android-arm64` and inspect the warning and device results.
|
||||||
Never count an ordinary Android AOT build as NativeAOT validation.
|
Never count an ordinary Android AOT build as NativeAOT validation.
|
||||||
|
|
||||||
For repeatable source-package preparation, follow the
|
For optional unpublished source-package preparation, follow the
|
||||||
[real local container package commands](../../Maui/PrismMauiDemo/NativeAotValidation.md#build-the-real-local-container-packages).
|
[real local container package commands](../../Maui/PrismMauiDemo/NativeAotValidation.md#build-the-real-local-container-packages).
|
||||||
Use both projects' normal supported TFMs, then add
|
Use both projects' normal supported TFMs, then add
|
||||||
`-p:RestoreAdditionalProjectSources="$PRISM_CONTAINER_FEED"` to the publish
|
`-p:RestoreAdditionalProjectSources="$PRISM_CONTAINER_FEED"` to the publish
|
||||||
command. The net10-only package used for cloud generator/core unit tests does
|
command together with `-p:PrismNativeAotContainerVersion="$PRISM_CONTAINER_VERSION"`. The net10-only package used for cloud generator/core unit tests does
|
||||||
not establish a complete multi-target mobile restore or native execution pass.
|
not establish a complete multi-target mobile restore or native execution pass.
|
||||||
|
|
||||||
The nested action checks bind `Context.ActionButton.Text`, `.Icon`, and `.Command`
|
The nested action checks bind `Context.ActionButton.Text`, `.Icon`, and `.Command`
|
||||||
|
|||||||
Reference in New Issue
Block a user