MSIX randomly not installing Windows service - windows

I have a Windows desktop application build using Maui and installed using an MSIX installer. A key part of the desktop application is a Windows service which should be installed by the MSIX installer.
I've found that randomly however it does not install the service. The installer also does not throw any error causing end users to open up the app only for it to crash (because of a missing service).
What I've found:
On a system where the app has not been installed before the service gets installed without problems
At any point when updating the app with a newer version or simply reinstalling the app the service might be missing afterwards
Once you get in a state where the service is missing no amount of reboots or reinstalls can fix the problem with one exception: installing a completely new version can fix the problem (for example: upgrading from 1.6.0 to 1.7.0 can fix the problem, same for downgrading).
Windows event viewer does not report any errors or problems as far as I've found (checked the AppXDeployment-Server logs)
The installer does prompt for elevated rights
I'm sure I probably made a mistake in my appxmanifest but I don't see it. Any help would be appreciated.
Our appxmanifest looks like this
<?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:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
xmlns:desktop6="http://schemas.microsoft.com/appx/manifest/desktop/windows10/6"
IgnorableNamespaces="uap rescap">
<Identity Name="NAME" Publisher="PUBLISHER" Version="0.0.0.0" />
<Properties>
<DisplayName>NAME</DisplayName>
<PublisherDisplayName>NAME</PublisherDisplayName>
<Logo>$placeholder$.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
<PackageDependency Name="Microsoft.VCLibs.140.00.UWPDesktop" MinVersion="14.0.24217.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />
</Dependencies>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="$targetentrypoint$">
<uap:VisualElements
DisplayName="$placeholder$"
Description="$placeholder$"
Square150x150Logo="$placeholder$.png"
Square44x44Logo="$placeholder$.png"
BackgroundColor="transparent">
<uap:DefaultTile Square71x71Logo="$placeholder$.png" Wide310x150Logo="$placeholder$.png" Square310x310Logo="$placeholder$.png" />
<uap:SplashScreen Image="$placeholder$.png" />
</uap:VisualElements>
<Extensions>
<desktop:Extension Category="windows.startupTask" Executable="NAME.exe" EntryPoint="MauiProgram.CreateMauiApp">
<desktop:StartupTask TaskId="NAME" Enabled="true" DisplayName="NAME" />
</desktop:Extension>
<desktop6:Extension
Category="windows.service"
Executable="SERVICE_EXECUTABLE.exe"
EntryPoint="SERVICE_NAMESPACE.Program">
<desktop6:Service
Name="SERVICE_NAME"
StartupType="auto"
StartAccount="localSystem"
Arguments="/manage"
>
</desktop6:Service>
</desktop6:Extension>
</Extensions>
</Application>
</Applications>
<Capabilities>
<rescap:Capability Name="runFullTrust" />
<rescap:Capability Name="allowElevation" />
<rescap:Capability Name="packagedServices" />
<rescap:Capability Name="packageManagement" />
<rescap:Capability Name="localSystemServices" />
</Capabilities>
</Package>

Related

Packaged & Installed UWP App Not In Start Menu

I generated the app package for my UWP project via sideload and installed it with the Powershell script that was made. Although the app installed and a folder was made in WindowsApps I cannot launch the app because it is not in the Start Menu. Any ideas on how to fix this?
Edit:
Applications tag in WAP Package Manifest:
<Applications>
<Application Id="App"
Executable="$targetnametoken$.exe"
EntryPoint="$targetentrypoint$">
<uap:VisualElements
DisplayName="WorksPackage2"
Description="Package"
BackgroundColor="transparent"
Square150x150Logo="Images\Square150x150Logo.png"
Square44x44Logo="Images\Square44x44Logo.png"
AppListEntry="none">
<uap:DefaultTile Wide310x150Logo="Images\Wide310x150Logo.png" />
<uap:SplashScreen Image="Images\SplashScreen.png" />
</uap:VisualElements>
<Extensions>
<uap:Extension Category="windows.appService">
<uap:AppService Name="iTunesConnection" />
</uap:Extension>
<desktop:Extension
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
Category="windows.fullTrustProcess"
Executable="iTunesConsole\iTunesConsole.exe">
</desktop:Extension>
</Extensions>
</Application>
Applications tag in UWP Manifest:
<Applications>
<Application Id="App"
Executable="$targetnametoken$.exe"
EntryPoint="Works.App">
<uap:VisualElements
DisplayName="Works"
Square150x150Logo="Assets\Square150x150Logo.png"
Square44x44Logo="Assets\Square44x44Logo.png"
Description="Works"
BackgroundColor="transparent">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
<uap:SplashScreen Image="Assets\SplashScreen.png" />
</uap:VisualElements>
<Extensions>
<uap3:Extension Category="windows.appExtension">
<uap3:AppExtension Name="microsoft.gameBarUIExtension"
Id="YourUniqueIdHere"
DisplayName="iTunes Controller"
Description="desc"
PublicFolder="GameBar">
<uap3:Properties>
<GameBarWidget Type="Standard">
<HomeMenuVisible>true</HomeMenuVisible>
<PinningSupported>true</PinningSupported>
<Window>
<Size>
<Height>300</Height>
<Width>400</Width>
<MinHeight>150</MinHeight>
<MinWidth>200</MinWidth>
<MaxHeight>1000</MaxHeight>
<MaxWidth>1000</MaxWidth>
</Size>
<ResizeSupported>
<Horizontal>true</Horizontal>
<Vertical>true</Vertical>
</ResizeSupported>
</Window>
</GameBarWidget>
</uap3:Properties>
</uap3:AppExtension>
</uap3:Extension>
</Extensions>
</Application>
The problem is that you have:
AppListEntry="none"
which says "please don't add an entry to the Start menu."

Desktop Windows App to include capabilities

I am trying to test the newer Geolocation API (in place of the older ILocation COM API), which is a WinRT API.
I 've followed instructions from here to allow a normal C++ desktop Win32 app to call Windows 10 RT functions. It works normally in my tests.
However, for location, I must include a capability in a XML file as discussed here.
How am I supposed to create this XML file? I tried creating a file like this:
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest">
<Capabilities>
<!-- DeviceCapability elements must follow Capability elements (if present) -->
<DeviceCapability Name="location"/>
</Capabilities>
<Identity Name=""
Version=""
Publisher="" />
<Properties>
<DisplayName></DisplayName>
<PublisherDisplayName></PublisherDisplayName>
<Logo></Logo>
</Properties>
<Prerequisites>
<OSMinVersion></OSMinVersion>
<OSMaxVersionTested></OSMaxVersionTested>
</Prerequisites>
<Resources>
<Resource Language="" />
</Resources>
<Applications>
<Application Id="" StartPage="">
<VisualElements DisplayName="" Description=""
Logo="" SmallLogo=""
ForegroundText="" BackgroundColor="">
<SplashScreen Image="" />
</VisualElements>
</Application>
</Applications>
</Package>
I am not sure what to do from now on. Is there a compiler setting that would tell the compiler/linker to include this appxmanifest file?
Thanks

Windows 10 IOT Foundation namespace is missing IOT

We are trying to add iot capabilities to our Package.appxmanifest for a cordova project. Visual studio complains that the capability we are trying to use cannot be found nor is it a child of the foundation name space.
The underlined iot:Capability shows the following when hovered over:
The element 'BackgroundTasks' in namespace 'http://schemas.microsoft.com/appx/manifest/foundation/winows10' has invalid child element 'Capabilities' in namespace 'http://schemas.microsoft.com/appx/manifest/iot/windows10'. List of possible elements expected: '...
The thing is I created this as a new project and let vs do all the work yet it cannot resolve it's own entries it's creating. We see this with both a new C# and JS project that VS generated. Can anyone help us? (Yes we added the references "Windows IoT Extensions for the UWP" 10.0.10586.0 to the project as well.). FYI We get the same error when adding as well.
Here's the package.appxmanifest:
<?xml version='1.0' encoding='utf-8'?>
<Package IgnorableNamespaces="uap mp iot" xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:iot="http://schemas.microsoft.com/appx/manifest/iot/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10">
<Identity Name="com.project.syndication.sitepad" Publisher="CN=$username$" Version="2.0.0.0" />
<mp:PhoneIdentity PhoneProductId="a885d1d0-453e-11e6-a59d-550bfa336405" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
<Properties>
<DisplayName>SitePad App</DisplayName>
<PublisherDisplayName>ERT</PublisherDisplayName>
<Logo>images\StoreLogo.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily MaxVersionTested="10.0.10586.0" MinVersion="10.0.10586.0" Name="Windows.Universal" />
</Dependencies>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="com.project.syndication.sitepad" StartPage="ms-appx-web:///www/index.html">
<uap:VisualElements BackgroundColor="#464646" Description="CordovaApp" DisplayName="SitePad App" Square150x150Logo="images\Square150x150Logo.png" Square44x44Logo="images\Square44x44Logo.png">
<uap:SplashScreen Image="images\splashscreen.png" />
<uap:DefaultTile ShortName="SitePad App" Square310x310Logo="images\Square310x310Logo.png" Square71x71Logo="images\Square71x71Logo.png" Wide310x150Logo="images\Wide310x150Logo.png" />
</uap:VisualElements>
<uap:ApplicationContentUriRules>
<uap:Rule Match="ms-appx-web:///" Type="include" WindowsRuntimeAccess="all" />
</uap:ApplicationContentUriRules>
</Application>
</Applications>
<Capabilities>
<Capability Name="internetClient" />
<uap:Capability Name="picturesLibrary" />
<iot:Capability Name="systemManagement" />
</Capabilities>
</Package>
The hovering error looks like a bug with something(VS?), I'm seeing it multiple times, yet my code still compiles and runs OK.
No worries on this.

How to change hardware requirements in Windows Universal App?

I developed a Windows (10) Universal App and is deployed to the Store (see here). To my surprise people can't rate it, it gives this reason: "This app needs hardware your device doesn't have, hindering app performance. Rating and reviewing is turned off."
On the bottom of the page in the Store it says "Hardware requirements: Mouse, Touch". I did not configured that anywhere, and I can't find where to change it. I checked the appmanifest with the editor, and there is no tab "Hardware requirements".
This is my appmanifest:
<?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" IgnorableNamespaces="uap mp">
<Identity Name="xxx" Publisher="CN=xxx" Version="1.1.10.0" />
<mp:PhoneIdentity PhoneProductId="xxxx" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
<Properties>
<DisplayName>StudioBrussel</DisplayName>
<PublisherDisplayName>BrechtB</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="StudioBrussel.App">
<uap:VisualElements DisplayName="Studio Brussel" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="Listen to Studio Brussels with this app! Luister naar Studio Brussel met deze app! Écoutez Studio Brussel avec cette app!" BackgroundColor="#cb030b">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png">
</uap:DefaultTile>
<uap:SplashScreen Image="Assets\SplashScreen.png" BackgroundColor="#cb030b" />
<uap:InitialRotationPreference>
<uap:Rotation Preference="portrait" />
<uap:Rotation Preference="landscape" />
<uap:Rotation Preference="portraitFlipped" />
<uap:Rotation Preference="landscapeFlipped" />
</uap:InitialRotationPreference>
</uap:VisualElements>
<Extensions>
<Extension Category="windows.backgroundTasks" EntryPoint="StudioBrussel.App">
<BackgroundTasks>
<Task Type="audio" />
</BackgroundTasks>
</Extension>
</Extensions>
</Application>
</Applications>
<Capabilities>
<Capability Name="internetClient" />
</Capabilities>
</Package>
Does anyone have an idea how to change it, or is this a store bug?
I found it, apparently the "hardware preferences" are not in the appmanifest anymore, but on dev.windows.com in the dashboard under submission => app properties => hardware preferences.

VS 2010 Bootstrapper package

I'm trying to create bootstrapper package for Visual Studio 2010. It has appeared in prerequisites window. Here is my product.xml
<?xml version="1.0" encoding="utf-8"?>
<Product ProductCode="FaroLS" xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper">
<PackageFiles CopyAllPackageFiles="true">
<PackageFile Name="faro ls 5.2.0.35213 x64 setup.exe" />
<PackageFile Name="example.faro.ls.exe.manifest" />
<PackageFile Name="faro.ls_5.2.0.35213.msi" />
<PackageFile Name="farolsdemoscans.zip" />
<PackageFile Name="faroopendemoapp.zip" />
<PackageFile Name="farosdkdemoapp.zip" />
<PackageFile Name="unins000.dat" />
<PackageFile Name="unins000.exe" />
<PackageFile Name="vcredist_x64.exe" />
<PackageFile Name="vcredist_x64_90.exe" />
</PackageFiles>
<InstallChecks>
<RegistryCheck Property="IsInstalled" Key="HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FARO LS_is1\" Value="Inno Setup: Setup Version"/>
</InstallChecks>
<Commands Reboot="Defer">
<Command PackageFile="faro ls 5.2.0.35213 x64 setup.exe">
<InstallConditions>
<BypassIf Property="IsInstalled" Compare="VersionGreaterThanOrEqualTo" Value="5.1.6" />
</InstallConditions>
<ExitCodes>
<DefaultExitCode Result="Fail" String="Anunexpectedexitcodewasr" FormatMessageFromSystem="true" />
</ExitCodes>
</Command>
</Commands>
</Product>
File example.faro.ls.exe.manifest
<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='FARO.LS' version='1.1.502.0' processorArchitecture='amd64' publicKeyToken="1d23f5635ba800ab"/>
</dependentAssembly>
</dependency>
</assembly>
To determine whether i have already installed this product i'm checking registry entry
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FARO LS_is1\Inno Setup: Setup Version
And now the bad things. Registry check does not work. Every time i launch product setup it asks me to install additional component, even if it is already installed.
And when installation starts i get error:
Setup has detected that the file 'C:\Users\user\AppData\Local\Temp\VSD1F0C.tmp\FaroLS\faro ls 5.2.0.35213 x64 setup.exe'
has either changed since it was initially published or may be corrupt.
See the setup log file located at
'C:\Users\user\AppData\Local\Temp\VSD1F0C.tmp\install.log' for more information.
I found some similar topics on stackoverflow, where .net 4.5 caused this problem. But i don't have one installed.
File faro ls 5.2.0.35213 x64 setup.exe does not have digital signature. Can it cause errors? Are there any ways to make it work?

Resources