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 (универсальная 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>

Версия снимка экрана UWP находится ниже  введите описание изображения здесь

введите здесь описание изображения

Пакет SDK для Windows 10  введите описание изображения здесь


person pixel    schedule 18.07.2017    source источник
comment
Вы должны использовать маленькие t вместо заглавных T в True Вот так uap4:SupportsMultipleInstances="true"   -  person Vijay Nirmal    schedule 18.07.2017
comment
Спасибо, Виджей, но это не имеет значения.   -  person pixel    schedule 18.07.2017
comment
Это была ошибка в документация Microsoft.   -  person Vijay Nirmal    schedule 18.07.2017
comment
Может быть, но они не исправляют ссылку на статью и не отвечают на мой вопрос по ней @Microsoft   -  person pixel    schedule 18.07.2017
comment
Я не могу воспроизвести вашу ошибку. Думаю, ваша ошибка не из-за этих строк.   -  person Vijay Nirmal    schedule 18.07.2017
comment
Что ж, ошибка явно указывает на эти строки, и в статье не содержится дополнительной информации. Я предоставил номера версий   -  person pixel    schedule 18.07.2017
comment
Какую версию UWP SDK вы используете?   -  person Peter Torr - MSFT    schedule 19.07.2017
comment
@ PeterTorr-MSFT Я добавил скриншот, показывающий версии. Спасибо Питер   -  person pixel    schedule 19.07.2017
comment
Пространство имен uap4 является частью Creators Update (также известного как RS2), сборка 15063.   -  person Peter Torr - MSFT    schedule 19.07.2017
comment
@ PeterTorr-MSFT моя Windows 10 является Creator (версия 1703) согласно моему сообщению выше. Так что я не уверен, что понимаю. Вы хотите сказать, что это работает только с VS 2017? Как обновить версию UWP SDK до Creators Update? Спасибо   -  person pixel    schedule 19.07.2017
comment
@ PeterTorr-MSFT Итак, установлен Windows SDK 15063 (см. Снимок экрана (10.0.15063.468). Перезапущен VS 2015, решение Cleaned and Rebuild, проблема все еще остается.   -  person pixel    schedule 19.07.2017
comment
@pixel Вы изменили целевую версию на Creators Update?   -  person Vijay Nirmal    schedule 19.07.2017
comment
@VijayNirmal Моя целевая версия отображается выше, и в этом раскрывающемся списке нет версии 15063   -  person pixel    schedule 19.07.2017
comment
@pixel To Target Creators Update вам потребуется Visual Studio 2017.   -  person Vijay Nirmal    schedule 19.07.2017
comment
Ничего не говорится об этом на docs.microsoft.com/en-us/windows/uwp/launch-resume/, но я не знаю, что еще делать, возможно, вы правы   -  person pixel    schedule 19.07.2017
comment
@Vijaj В статье даже говорится, что нужно использовать 2015 VS   -  person pixel    schedule 19.07.2017
comment
Итог, единственный способ его построить - удалить uap4: SupportsMultipleInsances   -  person pixel    schedule 20.07.2017
comment
Мы обновим документ.   -  person Peter Torr - MSFT    schedule 20.07.2017


Ответы (1)


Проблема в том, что вам нужно использовать Visual Studio 2017 и целевую сборку 15063 или выше, чтобы использовать атрибут uap4-namespaced.

person Peter Torr - MSFT    schedule 20.07.2017
comment
Спасибо, Питер. Кто-то должен обновить этот документ, в нем конкретно говорится об использовании VS2015, и он не предоставляет никакой информации об этом пространстве имен / uap4 / SupportsMultipleInstance. Страница датирована всего пару месяцев назад. И, кстати, я видел, как другие страницы MS говорили об этом и ссылались даже на неправильное пространство имен. Как-то грустно - person pixel; 20.07.2017
comment
Я внес на страницу предложенные правки, и, надеюсь, она скоро будет одобрена. Спасибо, что сообщили нам об этом. - person Peter Torr - MSFT; 20.07.2017
comment
Спасибо, Питер, еще один, о котором я сообщил на stackoverflow.com/questions/45205792/ - person pixel; 20.07.2017
comment
Кроме того, взгляните на эту ссылку, она сообщает о совершенно разных требованиях к пространству имен, чем ссылка, обсуждающая ту же тему, которую я опубликовал в этом, поэтому docs.microsoft.com/en-us/uwp/schemas/appxpackage/. Здесь указано, что необходимое пространство имен - schemas.microsoft.com/appx/manifest/foundation/windows10, тогда как ссылка, которую вы запросили для обновления, говорит, что это schemas.microsoft. com / appx / manifest / foundation / windows10 / 4 - person pixel; 20.07.2017