2

I'm trying to package doxygen to be distributed in the Microsoft Store, but I'm having trouble converting the app manually. (Doxygen is as simple as it gets, 4 file: 3 .exe and 1 .dll) I wanted initially to just export the the most frequently used console entry point: doxygen.exe. This is my manifest.

I'm following the docs found here. Everything is fine up until the last step, testing before packaging via

Add-AppxPackage -Register AppxManifest.xml

which results in an error

Add-AppxPackage: Invalid data. (0x8007000D)

My package folder layout is as follows after generating priconfig.xml and resources.pri:

enter image description here

The app manifest is the following (with my publisher ID removed):

<?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">
  <Identity
    Name="XYZ.DoxygenUnofficial"
    Version="1.8.18.0"
    Publisher="CN=..."
    ProcessorArchitecture="x64" />
  <Properties>
    <DisplayName>Doxygen (Unofficial)</DisplayName>
    <PublisherDisplayName>XYZ</PublisherDisplayName>
    <Description>Doxygen is the de facto standard tool for generating documentation from annotated C++ sources, but it also supports other popular programming languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL and to some extent D.</Description>
    <Logo>Assets\doxygen.png</Logo>
  </Properties>
  <Resources>
    <Resource Language="en-US" />
  </Resources>
    <Dependencies>
      <TargetDeviceFamily
        Name="Windows.Desktop"
        MinVersion="10.0.17763.0"
        MaxVersionTested="10.0.18335.0" />
    </Dependencies>
    <Capabilities>
      <rescap:Capability Name="runFullTrust"/>
    </Capabilities>
  <Applications>
    <Application
      Id="DOXYGEN"
      Executable="VFS\ProgramFilesX64\Doxygen\bin\doxygen.exe"
      EntryPoint="Windows.FullTrustApplication">
      <uap:VisualElements
        DisplayName="Doxygen"
        Description="Command-line interface"
        Square150x150Logo="Assets\icon.png"
        Square44x44Logo="Assets\small_icon.png"
        BackgroundColor="#234ea6" />
      <Extensions>
        <uap3:Extension
          Category="windows.appExecutionAlias"
          EntryPoint="Windows.FullTrustApplication"
          Executable="VFS\ProgramFilesX64\Doxygen\bin\doxygen.exe">
          <uap3:AppExecutionAlias>
            <desktop:ExecutionAlias Alias="doxygen.exe" />
          </uap3:AppExecutionAlias>
        </uap3:Extension>
      </Extensions>
    </Application>
  </Applications>
</Package>

What am I doing wrong? Can I get a more meaningful error?

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Meteorhead
  • 480
  • 3
  • 13
  • Please check Executable path, it looks not correct. please try to remove `VFS\ProgramFilesX64\Doxygen\bin\` – Nico Zhu Apr 20 '20 at 08:51
  • The paths seem ok, all exes and the dll is inside "VFS\ProgramFilesX64\Doxygen\bin", but I did try removing ProgramFilesX64 from both the .xml and copy files accordingly but it didn't help. I also checked whether machine type is correct, whether the doxygen .zip tricked me, but "dumpbin /headers" says it x64. I downloaded [this](http://doxygen.nl/files/doxygen-1.8.18.windows.x64.bin.zip) installer. – Meteorhead Apr 21 '20 at 07:05
  • If you run the `FullTrustApplication` please place the exe file in UWP project bin out put folder. – Nico Zhu Apr 22 '20 at 05:54
  • I wasn't aware that those need to be placed into a special directory, but I can't find documentation for it either. I also gave Advanced Installer Express a try, it displays the executables to be in APPDIR, but in fact it's just in the package root when I extract the MSIX. It also fails to export the .exe as a command-line entry point even though I click on the UI that it's one. – Meteorhead Apr 23 '20 at 11:58
  • For running full trust process please check this [document](https://learn.microsoft.com/en-us/uwp/api/windows.applicationmodel.fulltrustprocesslauncher?view=winrt-18362#remarks). – Nico Zhu Apr 24 '20 at 01:25
  • I'm not against manifests, I'm not against XML, I'm not against manual slice'n'dice, but I give up. It's impossible how there is not one sample that shows how to package a Win32 C++ Hello World standalone exe. Not a single one. The document you describe enables calling WinRT functions (and applying the manifest additions still results in the same error), but I'm not developing WinRT, my Win32 __cdecl int main likely isn't calling those APIs either. There is no indication to APPDIR as well. Packaging MSIX outside Visual Studio is borderline impossible. – Meteorhead Apr 24 '20 at 09:53

0 Answers0