slipcase-open 0.1.5

Open the payload of a Slipcase container in its own application, and write edits back into the container
Documentation
# The package identity Partner Center assigns, in one place.
#
# **This file is a template. Copy it to `identity.psd1` beside this one and put
# the real values in.** That copy is not committed — `.gitignore` keeps it out,
# and the comment there says why: `Publisher` is in the manifest of every
# package the Store distributes and the store id is in the public listing URL,
# so neither is a credential, but an account's identifiers still do not belong
# on a public record. `build-msix.ps1` refuses with this file's name in the
# message when the copy is missing, so a fresh checkout finds out what it needs
# rather than failing somewhere inside `makeappx`.
#
# The manifest keeps its placeholders and the build script substitutes from
# here, so these values live in exactly one place.
#
# WHERE THE VALUES COME FROM, AND WHY THEY CANNOT BE GUESSED
#
# All three are assigned when the name is reserved, and Partner Center shows
# them under Product management -> Product identity. A package whose identity
# disagrees with the reservation is rejected at upload rather than at review, so
# there is no way to discover a wrong value except by trying one.
#
# `Publisher` is the X.500 string and not the display name. It is the value most
# often copied wrong, and it is also the subject a test-signing certificate must
# carry exactly: `signtool` refuses to sign a package whose manifest `Publisher`
# and whose certificate subject differ. `build-msix.ps1 -SelfSign` builds the
# subject from this value rather than from anything typed a second time.
#
# The MSA application id on the same Partner Center page is needed by nothing
# here. Do not put it in the copy.
#
# This product is a second reservation rather than a second name on the viewer's
# product, because concept 2 splits the audiences and each wants its own
# listing. The publisher hash in the family name is the same as the viewer's,
# which is not a mistake: it is derived from `Publisher`, and both products come
# from one account.
#
# Author: David M. Anderson
# Built with AI assistance (Claude, Anthropic)
@{
    # Package/Identity/Name
    Name = 'PUBLISHER.AppName'

    # Package/Identity/Publisher
    Publisher = 'CN=00000000-0000-0000-0000-000000000000'

    # Package/Properties/PublisherDisplayName
    PublisherDisplayName = 'Your publisher display name'

    # Not manifest values, and Partner Center calls them calculated forms: the
    # package family name is the hash of the two identity values above, and the
    # store id is what the listing URL is built from. They are here because they
    # are what verifies an install and what links the listing, and both are
    # otherwise only findable by logging in.
    #
    #   Get-AppxPackage PUBLISHER.AppName
    #   https://apps.microsoft.com/detail/<StoreId>
    PackageFamilyName = 'PUBLISHER.AppName_0000000000000'
    StoreId = '000000000000'
}