Packaging a Qt/win32 application to post on microsoft store - qt

I have a medium sized C/C++ Qt application that uses some win32 API functions. I compiled for release and created a directory that contains all the needed DLLs and resources files needed. I tested it on other machines and it works fine.
Now my question is.. how to package such application so that I can put it on microsoft store? Note that it is not a UWP app and it uses some functions from win32.

You can use the Professional edition of Advanced Installer (it has Visual Studio integration) and create an MSIX package ready for the Windows Store.
Here is an article that takes you through the MS Store publishing steps
Also, an article that explains how to build and MSIX package using Advanced Installer's VS extension
Disclaimer. I work on the team building Advanced Installer.

Related

How do I create an msixbundle for a UWP project?

I have two xamarin forms projects that currently only utilize the UWP platform. One creates msixbundles when publishing and the other creates appxbundles when publishing. I can't seem to find any key difference between the Package.appxmanifest or the uwp project files that would cause this. I would like to make them both produce msixbundles. Does anyone know the key to creating msixbundles vs appxbundles?
The apps targeting Windows 1809 and newer are automatically packaged bundled as msix/msixbundle. And here is official release note.
We added support for creating .MSIX packages for both the Universal
Windows Platform projects, as well as in the Windows Application
Packaging Project template. To create an .MSIX package, the minimum
version of your application must be the latest Windows 10 SDK (build
17763).

Creating an MSI installer for a C# SCD Deployment (Visual Studio 2019)

I have a .Net Core 3.1 application that I'd like to deploy as a Self Contained (SCD) Deployment using an MSI Installer in Visual Studio 2019...
I have published the project as an SCD Deployment and I can run this on the target machine just fine
However, I've been asked by IT support to provide an MSI installer for the application as .MSI files work well with some of the admin/control applications they have.
So I created a setup project in my solution and selected 'Publish Items' as the Project Output of the setup project and rebuilt it...
The installer seems to run just fine on the target machine but when we try to run the installed application it says that .Net Core is required ...It's as if the installer has ignored the Self Contained aspect and just installed as a regular Framework Dependent Deployment
Is there a way to create an installer that installs an SCD deployment? Have I made a mistake in my thinking?
Many Thanks in advance,
Andy
The VS Setup Project template is quite old. Most likely it was not updated to be "aware" of the SCD support so it resorts to extracting the classic output binaries from your project.
There are other free tools that you can use to create an MSI from VS, which give you more options to customize and correctly configure the package.
If you have time and want to learn a new skill, try WiX Toolset. It is very powerful but you will need some time to get started.
If you wanted to get it done quickly and avoid the hassle, use the free VS Extension from Advanced Installer. Its GUI allows you to easily create your setup package and it has native support for .NET Core packaging too. If you follow the steps from the linked tutorial it should create a working package for your application.
Disclaimer: I work on the team building Advanced Installer.

Submit Qt based app on Windows App

I have already created Qt based application which uses some third-party open source library like OpenCV, I have looked Windows Dev Center and seems the all the reference is using Visual Studios and other Windows tool. I have created my App using Qt creator. Is it possible to submit such an application on Windows App store?
Any help will be appreciated,
Thanks
Haris
Bad news: Microsoft does not support Win32 apps on AppStore yet (but it has been announced, currently under development as "Project Centennial"). It looks like an "old-school" desktop applications cannot be submitted to the Windows App store.
Good news: Qt has support for WinRT (complete in Qt 5.6 which is currently in Beta and will be released in a few weeks). And qmake can generate a Visual Studio solution from your project (in case you need it for deployment or debugging; VS Community edition is free).
Qt WinRT tutorial: http://doc.qt.io/qt-5/winrt-support.html
OpenCV in WinRT: https://msopentech.com/blog/2014/03/20/easily-build-opencv-powered-apps-for-windows-store/

TFS 2012 Builds and SQLite for WinRT

Working on a Windows Store App which is utilising SQLite for WinRT. Local builds work fine due to the installation of the VS2012 Extension SQLite for Windows Runtime.
This adds 2 SDK references into the project config which points to the local file system (not part of the solution). But TFS 2012 Build freaks out saying that the build is broken as it can't find the SQLite and C++ dlls.
I am using the MS hosted TFS so installing the SDKs on the build server is not an option.
Any ideas?
I've run across similar issues when trying to build WinRT projects using the TFS Hosted Build Server.
In the end, this article was the winner:
http://blog.novotny.org/2012/03/24/how-to-use-extension-sdks-per-project/
The solution is to put the libraries in version control in a “libs” directory. NuGet does this for existing libraries in a \packages directory at the solution-level; it does not yet support Extension SDKs. The good news is that both Visual Studio 11 and MSBuild already support defining additional locations for Extension SDK’s by overriding the SDKReferenceDirectoryRoot variable. The key is to add the override after the element near the end of the csproj/vbproj file like this:
<PropertyGroup>
<SDKReferenceDirectoryRoot>$(SolutionDir)\libs;$(SDKReferenceDirectoryRoot)</SDKReferenceDirectoryRoot>
</PropertyGroup>
With that in place, you can then put your Extension SDK files alongside your solution:
\libs\Windows\v8.0\ExtensionSDKs[SDKName][SDKVersion]\…
Once there, it will be available in the Visual Studio Add References dialog like any other Extension SDK.
Now my SDK references don't need to be manually installed on developers machines or build servers.

Building Win, Mac and Linux packages from one platform

Is it possible / planned to build a Win/Mac/Linux package from within one platform?
An IDE called RunRev LiveCode allows to deploy to multiple platforms, but it supports only HyperCard language, afaik it's also possible in Qt
a Zotero Standalone Builder can be used to bundle Webapp XUL Wrapper into distributable bundles for Mac, Windows, and Linux
would it be possible to use it with TideSDK?
a Kickstarter project starts for AppJS, the maintainers want to launch a cloud service to deploy the app for all platforms in the cloud and then just download the exe, dmg or a linux package
It is not possible to build apps on the same platform with TideSDK. A service platform is coming that will solve this issue to make development easier for everyone. We'll make announcements with this available.

Resources