Renames AssemblyName to LlamaCasty before the first Steam depot — Steamworks is explicit that renaming a live exe is painful, so this had to land first, not later. Four assembly-qualified pack URIs carried the old name, not three: MainWindow (window icon), OverlayHost (logo), RenameRecordingDialog and KeepBroadcastDialog. Pack URIs resolve by assembly name at runtime, so a stale one compiles, passes every test and then silently renders nothing the first time that view opens. AssemblyIdentityTests guards both halves — the assembly name, and no source XAML still naming the legacy assembly. Packaging/Package.appxmanifest and package-msix.sh carry the exe name too. scripts/publish.sh replaces the by-hand publish: single-file win-x64, ReadyToRun, ffmpeg beside the exe, and it refuses to finish if ffmpeg, LICENSE, PRIVACY.md or THIRD-PARTY-NOTICES.txt are missing, or if a test assembly leaked in. That last guard exists because the first publish was wrong in a way no test could see: PublishSingleFile + IncludeNativeLibrariesForSelfExtract bundled the libav*.dll family into the exe — a 9-file output with no ffmpeg folder and a 182 MB binary, so the locator would have found nothing at runtime. ExcludeFromSingleFile="true" on the content keeps the folder a folder. Diffing against a control publish without the single-file flags found it; guessing at item globs wasted two attempts first (recorded in MyMistakes.md). Measured: 127 MB exe + 129 MB ffmpeg = 257 MB depot. Tests: AssemblyIdentity, StorePackaging, BuildStamp, BundledFonts all pass; app builds with 0 warnings.
79 lines
3.1 KiB
XML
79 lines
3.1 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
LlamaCasty — Microsoft Store MSIX manifest (TASK 48).
|
|
|
|
Full trust is the whole point of this file: the app records to the user's profile,
|
|
launches the bundled ffmpeg as a CHILD PROCESS, opens an ordinary Win32 folder picker,
|
|
and drives WebView2. None of that works in an AppContainer, so this is a
|
|
packagedClassicApp at mediumIL with the runFullTrust restricted capability.
|
|
|
|
⛔ Do NOT change this to appContainer: recording silently starts writing to a
|
|
per-package virtualised folder and the output "vanishes" (TASK 48 item 6).
|
|
|
|
⚠️ Before submission, replace Publisher with the exact Publisher value Partner Center
|
|
shows for the account, and PublisherDisplayName with its display name — a mismatch is
|
|
a certification rejection. The version is bumped per submission.
|
|
-->
|
|
<Package
|
|
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
|
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
|
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
|
|
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
|
|
IgnorableNamespaces="uap uap10 rescap">
|
|
|
|
<Identity
|
|
Name="LlamaCasty"
|
|
Publisher="CN=LlamaCasty"
|
|
Version="1.0.0.0"
|
|
ProcessorArchitecture="x64" />
|
|
|
|
<Properties>
|
|
<DisplayName>LlamaCasty</DisplayName>
|
|
<PublisherDisplayName>LlamaCasty</PublisherDisplayName>
|
|
<Description>Live streaming to YouTube: scenes, sources, a webcam with background effects, alerts, chat and recording.</Description>
|
|
<Logo>Assets\StoreLogo.png</Logo>
|
|
</Properties>
|
|
|
|
<Dependencies>
|
|
<TargetDeviceFamily
|
|
Name="Windows.Desktop"
|
|
MinVersion="10.0.19041.0"
|
|
MaxVersionTested="10.0.26100.0" />
|
|
</Dependencies>
|
|
|
|
<!-- English only (Store policy 10.7): a second language here means the listing
|
|
description must be localised into it too. -->
|
|
<Resources>
|
|
<Resource Language="en-US" />
|
|
</Resources>
|
|
|
|
<Applications>
|
|
<Application
|
|
Id="LlamaCasty"
|
|
Executable="LlamaCasty.exe"
|
|
EntryPoint="Windows.FullTrustApplication"
|
|
uap10:TrustLevel="mediumIL"
|
|
uap10:RuntimeBehavior="packagedClassicApp">
|
|
<uap:VisualElements
|
|
DisplayName="LlamaCasty"
|
|
Description="Live streaming to YouTube: scenes, sources, a webcam with background effects, alerts, chat and recording."
|
|
BackgroundColor="#171928"
|
|
Square150x150Logo="Assets\Square150x150Logo.png"
|
|
Square44x44Logo="Assets\Square44x44Logo.png">
|
|
<!-- The wide and 310 tiles live on DefaultTile, not on VisualElements — the
|
|
Windows 10 uap:VisualElements schema has no such attributes. -->
|
|
<uap:DefaultTile
|
|
Wide310x150Logo="Assets\Wide310x150Logo.png"
|
|
Square310x310Logo="Assets\Square310x310Logo.png" />
|
|
</uap:VisualElements>
|
|
</Application>
|
|
</Applications>
|
|
|
|
<Capabilities>
|
|
<rescap:Capability Name="runFullTrust" />
|
|
<DeviceCapability Name="webcam" />
|
|
<DeviceCapability Name="microphone" />
|
|
</Capabilities>
|
|
|
|
</Package>
|