Активация протокола WPF-приложения не работает при установке через appinstaller

У меня есть настольное приложение WPF, которое я упаковал в пакет MSIX. В манифесте пакета я определил расширение windows.protocol для запуска основного исполняемого файла при использовании определенного протокола. Эта активация протокола работает нормально, когда я устанавливаю с использованием пакета MSIX напрямую. Приложение должно автоматически обновляться, поэтому я создал файл.appinstaller, который ссылается на MSIX. Это также хорошо работает, но когда приложение установлено с использованием файла.appinstaller, активация протокола не работает. Фактически Windows запрашивает приложение, когда используется пользовательский протокол. Я никак не менял пакет MSIX, просто ссылался на него. Пакет MSIX подписан с использованием действующего купленного сертификата подписи.

Данный протокол предоставляет глубокие ссылки в приложение, которыми пользователи могут поделиться с помощью электронной почты. На данный момент я должен выбрать активацию протокола (установить MSIX напрямую) или автоматическое обновление (установить с помощью файла.appinstaller), но я не могу заставить оба работать.

appmanifest.xml

<?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:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
  IgnorableNamespaces="uap uap3 rescap">
  <Identity
    Name="MyApp"
    Publisher="CN=CompanyName, O=CompanyName, L=City, S=Province, C=BE"
    Version="1.0.0.0"
    ProcessorArchitecture="x64"/>

  <Properties>
    <DisplayName>MyApp</DisplayName>
    <PublisherDisplayName>CompanyName</PublisherDisplayName>
    <Logo>Images\StoreLogo.png</Logo>
  </Properties>

  <Dependencies>
    <TargetDeviceFamily Name="MSIXCore.Desktop" MinVersion="6.1.7601.0" MaxVersionTested="10.0.10240.0" />
    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14393.0" MaxVersionTested="10.0.18362.0" />
  </Dependencies>

  <Resources>
    <Resource Language="en-us"/>
  </Resources>

  <Applications>
    <Application Id="App"
      Executable="MyApp\MyApp.exe"
      EntryPoint="Windows.FullTrustApplication">
      <uap:VisualElements
        DisplayName="MyApp"
        Description="MyApp"
        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>
        <uap3:Extension Category="windows.protocol">
          <uap3:Protocol Name="myprotocol" Parameters="-s &quot;%1&quot;">
            <uap:DisplayName>MyProtocol Scheme</uap:DisplayName>
          </uap3:Protocol>
        </uap3:Extension>
      </Extensions>
    </Application>
  </Applications>

  <Capabilities>
    <Capability Name="internetClient" />
    <rescap:Capability Name="runFullTrust" />
    <Capability Name="privateNetworkClientServer"/>
    <uap:Capability Name="userAccountInformation"/>
  </Capabilities>
</Package>

myapp.appinstaller

<?xml version="1.0" encoding="utf-8"?>
<AppInstaller Uri="\\someserver\someshare\myapp.appinstaller" Version="1.0.0.0" xmlns="http://schemas.microsoft.com/appx/appinstaller/2018">
  <MainPackage Name="MyApp" Version="1.0.0.0" Publisher="CN=CompanyName, O=CompanyName, L=City, S=Province, C=BE" ProcessorArchitecture="x64" Uri="\\someserver\someshare\myapp.msix" />
  <UpdateSettings>
    <OnLaunch HoursBetweenUpdateChecks="0" ShowPrompt="true" UpdateBlocksActivation="true"/>
    <AutomaticBackgroundTask/>
  </UpdateSettings>
</AppInstaller>

0 ответов

Другие вопросы по тегам