buildMsixManifest function
String
buildMsixManifest({
- required String arch,
- required MsixIdentity identity,
- required String version,
- required MsixConfig config,
Implementation
String buildMsixManifest({
required String arch,
required MsixIdentity identity,
required String version,
required MsixConfig config,
}) {
final displayName = identity.displayName ?? config.displayName;
return '''
<?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:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
xmlns:desktop4="http://schemas.microsoft.com/appx/manifest/desktop/windows10/4"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap uap5 uap10 desktop4 rescap">
<Identity
Name="${_escapeXml(identity.identityName)}"
Publisher="${_escapeXml(identity.publisher)}"
Version="${_escapeXml(version)}"
ProcessorArchitecture="$arch" />
<Properties>
<DisplayName>${_escapeXml(displayName)}</DisplayName>
<PublisherDisplayName>${_escapeXml(identity.publisherDisplayName)}</PublisherDisplayName>
<Logo>Assets\\StoreLogo.png</Logo>
</Properties>
<Resources>
<Resource Language="${_escapeXml(config.defaultLanguage)}" />
</Resources>
<Dependencies>
<TargetDeviceFamily
Name="Windows.Desktop"
MinVersion="${_escapeXml(config.minWindowsVersion)}"
MaxVersionTested="${_escapeXml(config.maxTestedWindowsVersion)}" />
</Dependencies>
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
<Applications>
<Application
Id="${_escapeXml(config.applicationId)}"
Executable="${_escapeXml(config.executableName)}"
EntryPoint="Windows.FullTrustApplication"
uap10:RuntimeBehavior="packagedClassicApp"
uap10:TrustLevel="mediumIL"
desktop4:SupportsMultipleInstances="true">
<uap:VisualElements
DisplayName="${_escapeXml(displayName)}"
Description="${_escapeXml(config.description)}"
Square150x150Logo="Assets\\Square150x150Logo.png"
Square44x44Logo="Assets\\Square44x44Logo.png"
BackgroundColor="${_escapeXml(config.backgroundColor)}" />
<Extensions>
<uap5:Extension Category="windows.appExecutionAlias">
<uap5:AppExecutionAlias desktop4:Subsystem="console">
<uap5:ExecutionAlias Alias="${_escapeXml(config.executableName)}" />
</uap5:AppExecutionAlias>
</uap5:Extension>
</Extensions>
</Application>
</Applications>
</Package>
''';
}