Windows 10 UWP AppService, выпуск package.appxmanifest
Я пытаюсь сделать простое ServiceApp в UWP, следуя этой статье Microsoft https://docs.microsoft.com/en-us/windows/uwp/launch-resume/how-to-create-and-consume-an-app-service
Однако из-за явного изменения, предложенного в этой статье, приложение-служба не собирается.
Я потратил несколько дней на поиск в документации Microsoft по таким терминам, как " http://schemas.microsoft.com/appx/manifest/uap/windows10/4", "uap4" и "SupportsMultipleInstances", но мне не повезло понять, почему сборка выходит из строя. Я разместил множество вопросов на MSDN с подробной информацией, но это оказалось большой тратой времени, поэтому, как обычно, с MS.
Моя версия для Windows 10 - 1703, Windows 10 Enterprise, сборка ОС - 15063.413
Visual Studio 2015 Enterprise, версия 14.0.25431.01, обновление 3
Ниже ошибка, которую я получаю
Validation error. error C00CE015: App manifest validation error:
The app manifest must be valid as per schema:
Line 31, Column 58, Note:
The schema for OSMinVersion specified does not recognize XML fields with namespace "http://schemas.microsoft.com/appx/manifest/uap/windows10/4".
Please ensure that you have the correct OSMinVersion specified. Reason: The attribute '{http://schemas.microsoft.com/appx/manifest/uap/windows10/4}SupportsMultipleInstances' on the element '{http://schemas.microsoft.com/appx/manifest/uap/windows10}AppService' is not defined in the DTD/Schema.
AppServiceProviderInSeparateBackgroundProcess C:\Users\myuid\Desktop\work\AppServiceProviderInSeparateBackgroundProcess\AppServiceProviderInSeparateBackgroundProcess\bin\x86\Debug\AppxManifest.xml
Вот полный Package.appmanifest, созданный Blank App (Universal Windows) с добавленным пространством имен и тегом Extensions, как предлагается в статье.
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4"
IgnorableNamespaces="uap mp">
<Identity
Name="8db1ab9e-1dff-4fd4-a450-77fadd221043"
Publisher="CN=username"
Version="1.0.0.0" />
<mp:PhoneIdentity PhoneProductId="8db1ab9e-1dff-4fd4-a450-77fadd221043" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
<Properties>
<DisplayName>AppServiceProviderInSeparateBackgroundProcess</DisplayName>
<PublisherDisplayName>username</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
</Dependencies>
<Resources>
<Resource Language="x-generate"/>
</Resources>
<Applications>
<Application Id="App"
Executable="$targetnametoken$.exe"
EntryPoint="AppServiceProviderInSeparateBackgroundProcess.App">
<!-- Added Appservice extension that advertises com.Microsoft.Inventory service
This identifies this app as an app service provider. The service wil be
implemented as a background task.
The app service app exposes the service to other apps.-->
<Extensions>
<uap:Extension Category="windows.appService" EntryPoint="MyAppService.Inventory">
<uap:AppService Name="com.microsoft.inventory" uap4:SupportsMultipleInstances="true"/>
</uap:Extension>
</Extensions>
<uap:VisualElements
DisplayName="AppServiceProviderInSeparateBackgroundProcess"
Square150x150Logo="Assets\Square150x150Logo.png"
Square44x44Logo="Assets\Square44x44Logo.png"
Description="AppServiceProviderInSeparateBackgroundProcess"
BackgroundColor="transparent">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
<uap:SplashScreen Image="Assets\SplashScreen.png" />
</uap:VisualElements>
</Application>
</Applications>
<Capabilities>
<Capability Name="internetClient" />
</Capabilities>
</Package>
1 ответ
Проблема в том, что вам нужно использовать Visual Studio 2017 и целевую сборку 15063 или выше, чтобы использовать uap4
-namespaced атрибут.