How to write a Package.appxmanifest for installing a windows service in Windows Server 2019

277 Views Asked by At

I have this Package.appxmanifest file:

<?xml version="1.0" encoding="utf-8"?>

<Package
  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
  xmlns:desktop6="http://schemas.microsoft.com/appx/manifest/desktop/windows10/6"
  IgnorableNamespaces="uap rescap">

    <Identity
      Name="fac86114-6581-44d8-af9c-29c854873a79"
      Publisher="[email protected], Pro Reception ApS, O=Pro Reception ApS, L=Kongens Lyngby, S=Hovedstaden, C=DK"
      Version="0.0.2.0" />

    <Properties>
        <DisplayName>Pro Reception Print Server</DisplayName>
        <PublisherDisplayName>Pro Reception</PublisherDisplayName>
        <Logo>Images\StoreLogo.png</Logo>
    </Properties>

    <Dependencies>
        <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
        <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14393.0" MaxVersionTested="10.0.14393.0" />
    </Dependencies>

    <Resources>
        <Resource Language="x-generate"/>
    </Resources>

    <Applications>
        <Application Id="App"
          Executable="$targetnametoken$.exe"
          EntryPoint="$targetentrypoint$">
            <uap:VisualElements
            DisplayName="Pro Reception Print Server"
            Description="This service is needed for printing visitor name tags"
            BackgroundColor="transparent"
            Square150x150Logo="Images\Square150x150Logo.png"
            Square44x44Logo="Images\Square44x44Logo.png">
                <uap:DefaultTile Wide310x150Logo="Images\Wide310x150Logo.png" />
                <uap:SplashScreen Image="Images\SplashScreen.png" />
            </uap:VisualElements>
            <Extensions>
                <desktop6:Extension
                    Category="windows.service"
                    Executable="ProReception.PrintServer\ProReception.PrintServer.exe"
                    EntryPoint="Windows.FullTrustApplication">
                    <desktop6:Service
                        Name="Pro Reception Print Server"
                        StartupType="auto"
                        StartAccount="localService">
                    </desktop6:Service>
                </desktop6:Extension>
            </Extensions>
        </Application>
    </Applications>

    <Capabilities>
        <Capability Name="internetClient" />
        <rescap:Capability Name="runFullTrust" />
        <rescap:Capability Name="packagedServices"/>
    </Capabilities>
</Package>

I can successfully install the app on my Windows 10 machine, but it fails to install on a Windows Server 2019 machine, with the error:

error 0xC00CE014: App manifest validation error: The app manifest must be valid
                                       as per schema: Line 26, Column 10, Note: The schema for MaxVersionTested
                                       specified does not recognize XML fields with namespace
                                       "http://schemas.microsoft.com/appx/manifest/desktop/windows10/6". Please ensure
                                       that you have the correct MaxVersionTested specified. Reason: Element
                                       '{http://schemas.microsoft.com/appx/manifest/desktop/windows10/6}Extension' is
                                       unexpected according to content model of parent element
                                       '{http://schemas.microsoft.com/appx/manifest/foundation/windows10}Extensions'.
                                       Expecting: {http://schemas.microsoft.com/appx/manifest/foundation/windows10}Appl
                                       icationExtensionChoice, {http://schemas.microsoft.com/appx/manifest/foundation/w
                                       indows10}ExtensionChoice

I don't really understand the error, but it sounds like the desktop6 namespace is not supported on Windows Server 2019. Can that be true? - if so, how would I craft this installer to install my app on a Windows Server 2019 machine?

1

There are 1 best solutions below

0
Søren Pedersen On

I found this page, which details the various features that are supported by the msixbundle on different versions of Windows and Windows Server: https://learn.microsoft.com/en-us/windows/msix/supported-platforms#msix-feature-support

As of writing, this is how the table looks for Windows Server enter image description here

As you can see, Windows services is not supported on Windows Server 2019