Skip to content

#4880 Ship Csla.Avalonia with the framework packages - #4906

Merged
rockfordlhotka merged 2 commits into
mainfrom
4880-avalonia-package
Sep 13, 2026
Merged

rockfordlhotka merged 2 commits into
mainfrom
4880-avalonia-package

Conversation

@rockfordlhotka

Copy link
Copy Markdown
Member

Relates to #4880.

#4887 added Csla.Xaml.Avalonia, but that project was only in its own solution. It wasn't in csla.build.sln, so Csla.Avalonia would not have been packed or published with 10.2.0-beta.1.

Framework packaging

  • Adds Csla.Xaml.Avalonia to csla.build.sln under the UI folder. The release workflow packs this solution.
  • Adds it to csla.test.sln as well, since CI only builds that solution.
  • Aligns Csla.Xaml.Avalonia.csproj with the other packaged projects such as Csla.Wpf and Csla.Blazor:
    • It always references the Csla project. Release builds previously used the Csla 10.0.0 NuGet package, a setup copied from MAUI, which is released separately. The package would have depended on Csla 10.0.0 instead of the matching version.
    • Adds SignAssembly, BaseOutputPath, Product and Description.
    • Removes nullable settings that Directory.Build.props already provides, and switches to 2-space indentation.

Avalonia sample

The sample referenced Source/Csla.Xaml.Avalonia directly. That pulled framework projects into its build and failed with CS7027, because the signing key path depends on the solution directory. It now matches WpfExample:

  • Adds Directory.Packages.props for central package management, with CslaVersion and AvaloniaVersion properties.
  • The app and test projects reference the Csla.Avalonia package instead of the source project.
  • CslaVersion is set to 10.2.0-beta.1, so the sample won't restore from nuget.org until that beta is published. Until then, point CslaVersion at a locally packed build.
  • Updates the README to describe the package setup.

Verification

  • dotnet pack Source/csla.build.sln -c Release -p:PublicRelease=true produces Csla.Avalonia.10.2.0-beta.1.nupkg:
    • Its metadata matches Csla.Wpf: license, icon, readme, repository commit, tags, and XML docs and pdb in lib.
    • It depends on Csla 10.2.0-beta.1 and Avalonia 12.1.1.
    • Csla.Xaml.dll is strong-named with the same key as Csla.Wpf (PublicKeyToken=93be5fdc093e4c30).
  • A pack without -o writes Csla.Avalonia to bin/packages along with the other packages.
  • dotnet build Source/csla.test.sln builds with 0 errors.
  • Against the locally packed beta packages, using an isolated NuGet cache, the sample restores Csla and Csla.Avalonia as packages, builds, and passes its headless test (1/1).

Not changed

Csla.Analyzers packs to Bin/Release instead of bin/packages, because it doesn't import Directory.Package.props. That behavior predates this PR. The analyzers ship inside the Csla package, and moving this one would publish a standalone package at the next release.

🤖 Generated with Claude Code

https://claude.ai/code/session_01NW2FoBK5ogTPJam3vmMmyZ

rockfordlhotka and others added 2 commits September 13, 2026 03:12
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NW2FoBK5ogTPJam3vmMmyZ
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NW2FoBK5ogTPJam3vmMmyZ
@rockfordlhotka
rockfordlhotka merged commit badeb6c into main Sep 13, 2026
3 checks passed
@rockfordlhotka
rockfordlhotka deleted the 4880-avalonia-package branch September 13, 2026 08:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant