WindowsAppSDK
WindowsAppSDK copied to clipboard
Single-project MSIX doesn't support producing a MSIX Bundle
Describe the bug
Despite selecting "Generate app bundle = Always" in the UI, a .msixbundle file is not generated. The root cause is that single-project MSIX doesn't support generating MSIX Bundles today, however that manifests as a bug to the developer since the UI allows you to select an option that doesn't work.
Steps to reproduce the bug
- Create a new app
- Use the Package & Publish UI to start creating a package
- Select "Generate app bundle = Always" and select two build combinations
- Attempt to build the package
- Notice a silent error occurs
Microsoft.Build.Msix.Packaging.targets(341,5): error MSB6011: Invalid parameters passed to the Microsoft.Build.Msix.Symbols.WinAppSdkCheckFastlinkPdb task.
- Notice that no bundle is created, only separate MSIX's
Expected behavior
A bundle should be created.
Screenshots
No response
NuGet package version
1.0.0
Packaging type
Packaged (MSIX)
Windows version
No response
IDE
Visual Studio 2022-preview
Additional context
No response
What is the status of issue?
Is any workaround for creating msixbundle? @andrewleader
Any update on this one @andrewleader ? Or possible workaround ...
Manual workaround for those in need:
- Create folders Parent and Parent\Package.
- Copy the .msix files to Package folder.
- Execute the command below. Update the path as relevant.
- Will produce the .msixbundle in the Parent folder.
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\MakeAppx.exe" bundle /d "C:...\Parent\Package" /p "C:...\Parent\AppName_Bundle.msixbundle"
Theoretically someone should be able to create a post build script (and integrate it with VS project), but no success here so far.
Any update @evelynwu-msft ?
Unfortunately support for this won't be part of the 1.2 release.
Would love to see support for .msixbundles in VS 2022. It is currently blocking me from upgrading an existing UWP Microsoft Store app to WinUI3
Been hacking away at this and I think I got something that will make this all work wonderfully:
https://gist.github.com/mattleibow/8332ed79b569c9d7bbdae64a6e8142a6
My Github Action for misxbundle, hope that will help somebody. This will produce exactly same files as Uwp application
env:
AppxBundle: Always
AppxPackageBuildMode: SideloadOnly
Configuration: Release
ProjectName: <Your Project Name>
CertThumbprint: <Your Thumbprint>
SolutionPath: ${{github.workspace}}\<Your_Solution_Name>.sln
CertificationPath: ${{github.workspace}}\<Your_Certification_Name>.pfx
X64OutputPath: ${{github.workspace}}\Output\x64\
ARM64OutputPath: ${{github.workspace}}\Output\arm64\
BundleOutputPath: ${{github.workspace}}\Output\Bundle
AppMainfestPath: ${{github.workspace}}\<Your_Solution_Name>\Package.appxmanifest
steps:
- name: Get current version
id: versionStep
run: |
$xml = [XML](Get-Content $env:AppMainfestPath)
$version = $xml.Package.Identity.Version
echo "Version=$version" >> $env:GITHUB_OUTPUT
- name: Decode the SignCert
run: |
$pfxBase64 = [System.Convert]::FromBase64String("${{secrets.SIGNCERT}}")
[IO.File]::WriteAllBytes("$env:CertificationPath", $pfxBase64)
- name: Create the X64 msix pacakge
run: msbuild $env:SolutionPath /nologo /nr:false /t:Clean /p:Configuration=$env:Configuration /t:${{env.ProjectName}}:Rebuild /p:Platform=$env:Platform /p:UapAppxPackageBuildMode=$env:AppxPackageBuildMode /p:AppxBundle=$env:AppxBundle /p:PackageCertificateKeyFile=$env:CertificationPath /p:PackageCertificatePassword=${{secrets.SIGNCERTPASSWORD}} /p:PackageCertificateThumbprint=$env:CertThumbprint /p:AppxPackageDir=$env:X64OutputPath /p:GenerateAppxPackageOnBuild=true
env:
Platform: x64
- name: Create the ARM64 msix pacakge
run: msbuild $env:SolutionPath /nologo /nr:false /t:Clean /p:Configuration=$env:Configuration /t:${{env.ProjectName}}:Rebuild /p:Platform=$env:Platform /p:UapAppxPackageBuildMode=$env:AppxPackageBuildMode /p:AppxBundle=$env:AppxBundle /p:PackageCertificateKeyFile=$env:CertificationPath /p:PackageCertificatePassword=${{secrets.SIGNCERTPASSWORD}} /p:PackageCertificateThumbprint=$env:CertThumbprint /p:AppxPackageDir=$env:ARM64OutputPath /p:GenerateAppxPackageOnBuild=true
env:
Platform: arm64
- name: Generate the msixbundle folder with all the msix files
run: |
New-Item -Path $env:BundleOutputPath -ItemType Directory -Force
$x64MsixFiles = Get-ChildItem -Path $env:X64OutputPath -Recurse -Include *.msix
$arm64MsixFiles = Get-ChildItem -Path $env:ARM64OutputPath -Recurse -Include *.msix
$x64MsixFiles | ForEach-Object {
Copy-Item -Path $_ -Destination $env:BundleOutputPath
}
$arm64MsixFiles | ForEach-Object {
Copy-Item -Path $_ -Destination $env:BundleOutputPath
}
- name: MSIX Bundler
uses: LanceMcCarthy/[email protected]
with:
msix-folder: ${{env.BundleOutputPath}}
msixbundle-filepath: ${{env.BundleOutputPath}}\Your_App_Name_${{steps.versionStep.outputs.Version}}_x64_arm64.msixbundle
msixbundle-version: ${{steps.versionStep.outputs.Version}}
sdk-version: 10.0.22621.0
architecture: x64
enable-bundle-signing: true
certificate-path: ${{env.CertificationPath}}
certificate-private-key: ${{secrets.SIGNCERTPASSWORD}}
signing-hash-algorithm: SHA256
- name: Cleanup redundant and secret files
run: |
Remove-Item -Path $env:CertificationPath
$msixFiles = Get-ChildItem -Path $env:BundleOutputPath -Recurse -Exclude *.msixbundle
$msixFiles | ForEach-Object {
Remove-Item -Path $_
}
- name: Copy optional files
run: |
$optionalFiles = Get-ChildItem -Path $env:X64OutputPath -Recurse -Include *.cer,*.ps1,*.msixsym
$optionalFiles | ForEach-Object {
Copy-Item -Path $_ -Destination $env:BundleOutputPath
}
$resourceDirectory = Get-ChildItem -Path $env:X64OutputPath -Directory -Recurse -Include Add-AppDevPackage.resources
$resourceDirectory | ForEach-Object {
Copy-Item -Recurse -Path $_ -Destination $env:BundleOutputPath
}
$oldCertName = (Get-Item -Path "$env:BundleOutputPath\*.cer").Name
$newCertName = $oldCertName.Replace("x64","x64_arm64")
Rename-Item -Path "$env:BundleOutputPath\$oldCertName" -NewName $newCertName
$arm64symfiles = Get-ChildItem -Path $env:ARM64OutputPath -Recurse -Include *.msixsym
$arm64symfiles | ForEach-Object {
Copy-Item -Path $_ -Destination $env:BundleOutputPath
}
- name: Upload MSIXBUNDLE package
uses: actions/[email protected]
with:
name: MSIXBUNDLE Package
path: ${{env.BundleOutputPath}}
I started using in my Azure DevOps pipelines something similar -> VS Build task for creating msix, call PowerShell for bundling (move msix to temp folder, call MakeAppx.exe) and that's working without problems.
Very nice! Many ways to bundle this cat :)
This is a major issue that has been open for almost 6 months without resolution (blocking me from releasing now). Microsoft, can you give an update here on when we can expect closure? What the actual issue is?
For anyone who’s interested, have a look here: https://github.com/wjk/WindowsLogViewer/blob/main/build/targets/MsixBundle.targets
This MSBuild file I wrote can be used to add msixbundle support to a single-project build by running the Publish target multiple times. I have successfully used it to create msixbundles for Store upload. You will need to have this included in your csproj somehow; I reference it via a chain of files from Directory.Build.targets
. I just released it under MIT (the app itself is GPLv3).
Hi @evelynwu-msft, do you have any info about this bug? You said it won't be part of 1.2 release and I think it won't be in 1.3 too, so could we have any guarantee it will be included in 1.4?
@wjk When I try to use your MsixBundle.targets file, I get this error:
MakeAppx : error : For file "\\?\E:\repos\temp\WinUI-Test\WinUI-Test\bin\Release\net7.0-windows10.0.22621"" - Failure at opcFactory->CreateStreamOnFile(longFilePath, ioMode, NULL, FILE_ATTRIBUTE_NORMAL, fileStream) - 0x80
07007b - The filename, directory name, or volume label syntax is incorrect. [E:\repos\temp\WinUI-Test\WinUI-Test\WinUI-Test.csproj]
MakeAppx : error : Failure at (GetFileStream(bundleName, OPC_STREAM_IO_WRITE, &packageStream)) - 0x8007007b - The filename, directory name, or volume label syntax is incorrect. [E:\repos\temp\WinUI-Test\WinUI-Test\WinUI-T
est.csproj]
MakeAppx : error : Bundle creation failed. [E:\repos\temp\WinUI-Test\WinUI-Test\WinUI-Test.csproj]
MakeAppx : error : 0x8007007b - The filename, directory name, or volume label syntax is incorrect. [E:\repos\temp\WinUI-Test\WinUI-Test\WinUI-Test.csproj]
E:\repos\temp\WinUI-Test\WinUI-Test\MsixBundle.targets(122,5): error MSB3073: The command ""C:\Users\magnu\.nuget\packages\microsoft.windows.sdk.buildtools\10.0.22621.756\bin\10.0.22621.0\x64\MakeAppx.exe" bundle /v /o /f
"obj\Release\net7.0-windows10.0.22621\win10-x64\msixbundle.files" /p "bin\Release\net7.0-windows10.0.22621\"" exited with code 1. [E:\repos\temp\WinUI-Test\WinUI-Test\WinUI-Test.csproj]
Build FAILED.
My .csproj file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net7.0-windows10.0.22621</TargetFramework>
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
<RootNamespace>WinUI_Test</RootNamespace>
<ApplicationManifest>app.manifest</ApplicationManifest>
<Platforms>x86;x64;ARM64</Platforms>
<RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
<PublishProfile>win10-$(Platform).pubxml</PublishProfile>
<UseWinUI>true</UseWinUI>
<EnableMsixTooling>true</EnableMsixTooling>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<Nullable>enable</Nullable>
<GenerateAppInstallerFile>False</GenerateAppInstallerFile>
<AppxAutoIncrementPackageRevision>True</AppxAutoIncrementPackageRevision>
<AppxSymbolPackageEnabled>False</AppxSymbolPackageEnabled>
<GenerateTestArtifacts>True</GenerateTestArtifacts>
<AppxBundle>Always</AppxBundle>
<AppxBundlePlatforms>x86|x64|arm64</AppxBundlePlatforms>
<HoursBetweenUpdateChecks>0</HoursBetweenUpdateChecks>
</PropertyGroup>
<ItemGroup>
<Content Include="Assets\SplashScreen.scale-200.png" />
<Content Include="Assets\LockScreenLogo.scale-200.png" />
<Content Include="Assets\Square150x150Logo.scale-200.png" />
<Content Include="Assets\Square44x44Logo.scale-200.png" />
<Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
<Content Include="Assets\Wide310x150Logo.scale-200.png" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.1.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.3.230331000" />
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.756" />
<Manifest Include="$(ApplicationManifest)" />
</ItemGroup>
<!--
Defining the "Msix" ProjectCapability here allows the Single-project MSIX Packaging
Tools extension to be activated for this project even if the Windows App SDK Nuget
package has not yet been restored.
-->
<ItemGroup Condition="'$(DisableMsixProjectCapabilityAddedByProject)'!='true' and '$(EnableMsixTooling)'=='true'">
<ProjectCapability Include="Msix" />
</ItemGroup>
<!--
Defining the "HasPackageAndPublishMenuAddedByProject" property here allows the Solution
Explorer "Package and Publish" context menu entry to be enabled for this project even if
the Windows App SDK Nuget package has not yet been restored.
-->
<PropertyGroup Condition="'$(DisableHasPackageAndPublishMenuAddedByProject)'!='true' and '$(EnableMsixTooling)'=='true'">
<HasPackageAndPublishMenu>true</HasPackageAndPublishMenu>
</PropertyGroup>
<Import Project="MsixBundle.targets" />
</Project>
My MsixBundle.targets file
<Project>
<!-- From: https://gist.github.com/mattleibow/8332ed79b569c9d7bbdae64a6e8142a6 -->
<!--
=======================================================================
Microsoft.Build.Msix.Packaging.MsixBundle.targets
=======================================================================
This targets file can be imported at the bottom of the main app project file (.csproj):
<Import Project="Microsoft.Build.Msix.Packaging.MsixBundle.targets" />
In order to build a .msix bundle, you can use `dotnet build`:
dotnet build /t:GenerateMsixBundle -f net7.0-windows10.0.19041.0 <path/to/app.csproj>
In order to control the RIDs in the app bundle, you can override them using the $(RuntimeIdentifiers)
propertyin your .csproj. Make sure to condition on the Windows TargetFramework:
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">
<RuntimeIdentifiers>win10-x64;win10-x86;win10-arm64</RuntimeIdentifiers>
</PropertyGroup>
-->
<!-- Make sure all the available RIDs are specified -->
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows' and '$(RuntimeIdentifiers)' == ''">
<RuntimeIdentifiers>win10-x64;win10-x86;win10-arm64</RuntimeIdentifiers>
</PropertyGroup>
<!-- Make at least one RID is specified for the IDE -->
<PropertyGroup Condition=" '$([MSBuild]::GetTargetPlatformIdentifier($(TargetFramework)))' == 'windows' and '$(RuntimeIdentifier)' == '' ">
<_SingleProjectHostArchitecture>$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture)</_SingleProjectHostArchitecture>
<_SingleProjectHostArchitecture>$(_SingleProjectHostArchitecture.ToLower())</_SingleProjectHostArchitecture>
<RuntimeIdentifier>win10-$(_SingleProjectHostArchitecture)</RuntimeIdentifier>
</PropertyGroup>
<!-- Workaround for https://github.com/microsoft/WindowsAppSDK/issues/3337 -->
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows' and '$(RuntimeIdentifierOverride)' != ''">
<RuntimeIdentifier>$(RuntimeIdentifierOverride)</RuntimeIdentifier>
</PropertyGroup>
<!-- This runs inside each publish to determine the output path of the generated .msix -->
<Target
Name="_GenerateMsixBundlePublish"
Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'"
DependsOnTargets="Publish"
Returns="@(_MsixPackageOutput)">
<ItemGroup>
<_MsixPackageOutput
Include="$(AppxPackageOutput)"
AppxPackageNameNeutral="$(AppxPackageNameNeutral)"
AppxBundleExtension="$(AppxBundleExtension)"
AppxPackageConfiguration="$(_AppxPackageConfiguration)" />
</ItemGroup>
</Target>
<!-- This runs once to build the .msixbundle -->
<Target
Name="GenerateMsixBundle"
Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">
<!-- build up the matrix of the project to RID -->
<ItemGroup>
<_MsixBundleRID Include="$(RuntimeIdentifiers)" />
</ItemGroup>
<!-- Compute the platform for each RID, as it must be manually specified -->
<ItemGroup>
<_MsixBundleRID Update="@(_MsixBundleRID)" Condition="$([System.String]::Copy('%(Identity)').EndsWith('x64'))">
<Platform>x64</Platform>
</_MsixBundleRID>
<_MsixBundleRID Update="@(_MsixBundleRID)" Condition="$([System.String]::Copy('%(Identity)').EndsWith('x86'))">
<Platform>x86</Platform>
</_MsixBundleRID>
<_MsixBundleRID Update="@(_MsixBundleRID)" Condition="$([System.String]::Copy('%(Identity)').EndsWith('arm64'))">
<Platform>ARM64</Platform>
</_MsixBundleRID>
</ItemGroup>
<ItemGroup>
<_MsixBundleProject Include="$(MSBuildProjectFile)" AdditionalProperties="Configuration=$(Configuration);Platform=%(_MsixBundleRID.Platform);RuntimeIdentifierOverride=%(_MsixBundleRID.Identity)" />
</ItemGroup>
<!-- publish the project for each RID -->
<MSBuild
Projects="@(_MsixBundleProject)"
Targets="_GenerateMsixBundlePublish"
BuildInParallel="$(BuildInParallel)">
<Output
TaskParameter="TargetOutputs"
ItemName="_MsixPackageOutput" />
</MSBuild>
<!-- determine all the properties of the .msixbundle -->
<PropertyGroup>
<AppxPackageNameNeutral>%(_MsixPackageOutput.AppxPackageNameNeutral)</AppxPackageNameNeutral>
<AppxBundleExtension>%(_MsixPackageOutput.AppxBundleExtension)</AppxBundleExtension>
<AppxPackageConfiguration>%(_MsixPackageOutput.AppxPackageConfiguration)</AppxPackageConfiguration>
<_MsixBundlePath>$(PackageOutputPath)$(TargetFramework)\$(AppxPackageNameNeutral)$(AppxPackageConfiguration)$(AppxBundleExtension)</_MsixBundlePath>
<_MsixBundleFilesPath>$(IntermediateOutputPath)msixbundle.files</_MsixBundleFilesPath>
</PropertyGroup>
<!-- determine all the files of the .msixbundle -->
<ItemGroup>
<_MsixBundleFilesLines Include="[Files]" />
<_MsixBundleFilesLines Include="@(_MsixPackageOutput->'"%(FullPath)" "%(Filename)%(Extension)"')" />
</ItemGroup>
<!-- write out the files -->
<WriteLinesToFile
File="$(_MsixBundleFilesPath)"
Lines="@(_MsixBundleFilesLines)"
Overwrite="True"
WriteOnlyWhenDifferent="True" />
<ItemGroup>
<FileWrites Include="$(_MsixBundleFilesPath)" />
</ItemGroup>
<!-- generate the .msix bundle -->
<Exec Command=""$(MakeAppxExeFullPath)" bundle /v /o /f "$(_MsixBundleFilesPath)" /p "$(_MsixBundlePath)"" />
<!-- sign the .msix bundle -->
<WinAppSdkSignAppxPackage
Condition="'$(AppxPackageSigningEnabled)' == 'true'"
AppxPackageToSign="$(_MsixBundlePath)"
CertificateThumbprint="$(PackageCertificateThumbprint)"
CertificateFile="$(PackageCertificateKeyFile)"
HashAlgorithmId="$(AppxHashAlgorithmId)"
EnableSigningChecks="$(EnableSigningChecks)"
SignAppxPackageExeFullPath="$(SignAppxPackageExeFullPath)"
TempCertificateFilePath="$(TempCertificateFilePath)"
ExportCertificate="true">
<Output TaskParameter="ResolvedThumbprint" PropertyName="ResolvedThumbPrint"/>
<Output TaskParameter="AppxPackagePublicKeyFile" PropertyName="AppxPackagePublicKeyFile" />
</WinAppSdkSignAppxPackage>
</Target>
</Project>
My command:
dotnet build -c Release /t:GenerateMsixBundle -f net7.0-windows10.0.22621 .\WinUI-Test.csproj
Any ideas what it could be?
It looks to me like there is a stray double-quote at the end of the $(_MsixBundlePath)
property.
It looks to me like there is a stray double-quote at the end of the
$(_MsixBundlePath)
property.
Can't find that... which line are you referring to?
However, when building with -v n (verbosity normal),
dotnet build -c Release /t:GenerateMsixBundle -f net7.0-windows10.0.22621 .\WinUI-Test.csproj -v n
I can observe that the msixbundle.files
file doesn't contain any .msix files, it's empty...:
Output details
Option /v specified, switching to verbose output.
Option /o specified, existing files will be overwritten.
The path (/p) parameter is: "\\?\E:\repos\temp\WinUI-Test\WinUI-Test\bin\Release\net7.0-windows10.0.22621""
The mapping file (/f) parameter is: "obj\Release\net7.0-windows10.0.22621\win10-x64\msixbundle.files"
Reading mapping file "obj\Release\net7.0-windows10.0.22621\win10-x64\msixbundle.files"
[Files] section found on line 1.
Packing 0 file(s) listed in "obj\Release\net7.0-windows10.0.22621\win10-x64\msixbundle.files" (mapping file) to "\\?\E:\repos\temp\WinUI-Test\WinUI-Test\bin\Release\net7.0-windows10.0.22621"" (output file name).
1>MakeAppx : error : For file "\\?\E:\repos\temp\WinUI-Test\WinUI-Test\bin\Release\net7.0-windows10.0.22621"" - Failure at opcFactory->CreateStreamOnFile(longFilePath, ioMode, NULL, FILE_ATTRIBUTE_NORMAL, fileStream) - 0x8007007b - The filenam
e, directory name, or volume label syntax is incorrect. [E:\repos\temp\WinUI-Test\WinUI-Test\WinUI-Test.csproj]
1>MakeAppx : error : Failure at (GetFileStream(bundleName, OPC_STREAM_IO_WRITE, &packageStream)) - 0x8007007b - The filename, directory name, or volume label syntax is incorrect. [E:\repos\temp\WinUI-Test\WinUI-Test\WinUI-Test.csproj]
1>MakeAppx : error : Bundle creation failed. [E:\repos\temp\WinUI-Test\WinUI-Test\WinUI-Test.csproj]
1>MakeAppx : error : 0x8007007b - The filename, directory name, or volume label syntax is incorrect. [E:\repos\temp\WinUI-Test\WinUI-Test\WinUI-Test.csproj]
1>E:\repos\temp\WinUI-Test\WinUI-Test\MsixBundle.targets(122,5): error MSB3073: The command ""C:\Users\magnu\.nuget\packages\microsoft.windows.sdk.buildtools\10.0.22621.756\bin\10.0.22621.0\x64\MakeAppx.exe" bundle /v /o /f "obj\Release\net7.0
-windows10.0.22621\win10-x64\msixbundle.files" /p "bin\Release\net7.0-windows10.0.22621\"" exited with code 1. [E:\repos\temp\WinUI-Test\WinUI-Test\WinUI-Test.csproj]
1>Done Building Project "E:\repos\temp\WinUI-Test\WinUI-Test\WinUI-Test.csproj" (GenerateMsixBundle target(s)) -- FAILED.
@MagnusJohansson
"\\?\E:\repos\temp\WinUI-Test\WinUI-Test\bin\Release\net7.0-windows10.0.22621""
One quote at the beginning, two at the end.
Any word on this? Seems like a fairly large error to just go ignored for so long, particularly when they are encouraging developers to migrate from UWP to Windows App SDK...
Okay, @evelynwu-msft ignored me, so probably @gabbybilka or @andrewleader could share some info
Can we get some transparency here? We need to be able to plan. This clearly missed the 1.1 milestone (and then some). So, what is the new target?
This is very frustrating. If I upload the .misx
to the store I get
A previous submission for this app was released with a Windows 10 .msixbundle or .appxbundle. Subsequent submissions must continue to contain a Windows 10 .msixbundle or .appxbundle.
This is because WinUI3 use to have a separate project for packaging which created a bundle. Now I must continue to submit bundles but the AppSDK wont generate them
Any progress on this issue?
We are now creating the msixbundle after migrating from UWP via command line in our CI. The migration from UWP to WinUI3 is not very good. The migration is a disaster!!
Kind of mind-boggling there is just zero progress on this issue. Microsoft doesn't want us to publish apps apparently. Even the milestone hasn't been updated and still stands at "1.1"
I just want MSBuild to work. I don't understand why this bug is still around.
@duncanmacmichael
Hi @JanRajnoha, thanks for the ping. I checked with the team on this and it looks like it's something we have on our radar but with no concrete details to share right now. I did go ahead and at least clear the old milestone off, though.