Почему мое расширение Package.appxmanifest выдает ошибку проверки C00CE014?

В новом решении Visual Studio 2019 я создал консольный проект .Net Core и проект UWP, которые я упаковываю с помощью проекта упаковки приложений Windows. На этом этапе я могу без проблем скомпилировать и запустить все эти проекты.

Моя следующая задача - добавить скомпилированный вывод консольного приложения как windows.fullTrustProcess в Package.appxmanifest для проекта упаковки:

<?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:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
  xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
  IgnorableNamespaces="uap uap3 desktop rescap">

  <Identity
    Name="7260053b-0cee-406a-a6ce-0842444e35eb"
    Publisher="CN=Publisher"
    Version="1.0.0.0" />

  <Properties>
    <DisplayName>DisplayName</DisplayName>
    <PublisherDisplayName>DisplayName</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="DisplayName"
        Description="Description"
        BackgroundColor="transparent"
        Square150x150Logo="Images\Square150x150Logo.png"
        Square44x44Logo="Images\Square44x44Logo.png">
        <uap:DefaultTile Wide310x150Logo="Images\Wide310x150Logo.png" />
        <uap:SplashScreen Image="Images\SplashScreen.png" />
      </uap:VisualElements>
    </Application>
  </Applications>

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

  <Extensions>
    <uap3:Extension Category="windows.fullTrustProcess" Executable="MyConsoleApp.exe"/>
  </Extensions>

</Package>

Когда я пытаюсь создать проект упаковки, я получаю следующую ошибку сборки:

Ошибка APPX0501: ошибка проверки. ошибка C00CE014: ошибка проверки манифеста приложения: манифест приложения должен быть действительным в соответствии со схемой: строка 40, столбец 6, причина: элемент '{http://schemas.microsoft.com/appx/manifest/uap/windows10/3}Extension 'является неожиданным в соответствии с моделью содержимого родительского элемента' {http://schemas.microsoft.com/appx/manifest/foundation/windows10}Extensions '. Ожидается: {http://schemas.microsoft.com/appx/manifest/foundation/windows10}Extension, {http://schemas.microsoft.com/appx/manifest/foundation/windows10}ExtensionChoice.

Я пробовал разные комбинации Extension, uap:Extension, desktop:Extension, и все они дают мне похожие ошибки. Я считаю, что в основном я недостаточно разбираюсь в пространствах имен appxmanifest, чтобы диагностировать проблему.

Как правильно объявить расширение fullTrustProcess?


person Vesuvian    schedule 13.12.2020    source источник


Ответы (1)


Поместите Extensions в блок Application.

Как следующее:

<Applications>
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="$targetentrypoint$">
  <uap:VisualElements ....../>
  </uap:VisualElements>
  <Extensions>
    <desktop:Extension Category="windows.fullTrustProcess" Executable="FullTrust\FullTrust.exe" />
  </Extensions>
</Application>
person Roy Li - MSFT    schedule 14.12.2020
comment
Спасибо, Рой! Не могу поверить, что это было так просто! - person Vesuvian; 14.12.2020