Тёмный

MSIX Installer for Desktop Applications - Packaging WPF, WinForms, and UWP Applications 

IAmTimCorey
Подписаться 416 тыс.
Просмотров 120 тыс.
50% 1

Creating an installer for a C# desktop application used to involve a third-party solution like InstallShield to create MSI or Setup file. With the addition of UWP, Microsoft created the MSIX installer option. However, until recently it only worked for UWP applications. Now, we can use the MSIX installer to install Winforms and WPF desktop applications without going through the Microsoft Store if we don't want to. In this video, we are going to look at how to create an MSIX setup package, how to include our project in the package, and how to install and update our application on a client machine.
Source Code: leadmagnets.app/?Resource=MSI...
Mailing List: signup.iamtimcorey.com/
MSIX Documentation: docs.microsoft.com/en-us/wind...
Microsoft Store Signup: developer.microsoft.com/en-us...

Опубликовано:

 

23 фев 2020

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 434   
@jurgenbartalis1933
@jurgenbartalis1933 3 года назад
I wish Microsoft's instructions were as easy to understand and detailed as yours are.
@IAmTimCorey
@IAmTimCorey 3 года назад
I am glad my explanations are clear.
@sundeepyama
@sundeepyama 3 года назад
I can't tell you how thankful I am for this video. You just made my week. I spent almost 2 days trying to figure out the build configuration issue and I searched in all regular blogs but couldn't find anything helpful. I am glad I finally found this. Your video is amazing with all the minute details and clarity of thought. Thank you.
@IAmTimCorey
@IAmTimCorey 3 года назад
Glad I could help. Be sure to check out my other videos.
@eastmanh1
@eastmanh1 3 года назад
This was EXACTLY what I needed. I simply couldn't figure out the certificate piece. Thank you for taking the extra time to be so clear and concise.
@IAmTimCorey
@IAmTimCorey 3 года назад
Glad it was helpful!
@NoirMorter
@NoirMorter 2 года назад
Began watching your videos in college a year ago and now love watching your stuff. It has helped me create my first very basic program. Thank you!
@IAmTimCorey
@IAmTimCorey 2 года назад
That is awesome!
@leonardegray1769
@leonardegray1769 11 месяцев назад
Excellent tutorial. Mr. Corey, you are a very talented man and an outstanding instructor. Your attention to details is what makes you stand out!
@IAmTimCorey
@IAmTimCorey 11 месяцев назад
I appreciate the kind words.
@anthonywoods2550
@anthonywoods2550 4 года назад
Thanks for these links: The MSIX documentation helps a lot. Got Manifest error I am trying to figure out. Trying to put my first app in the Microsoft Store. Got some more to load out there later. I am a C# Developer. Love this stuff. Thanks man, Great videos!
@IAmTimCorey
@IAmTimCorey 4 года назад
Glad it was helpful!
@lenardbartha6722
@lenardbartha6722 4 года назад
Awesome! We use Advanced Installer, it is fantastic. Thanks for the video, love it as always.
@IAmTimCorey
@IAmTimCorey 4 года назад
You are welcome.
@AbubakrMahdiSan
@AbubakrMahdiSan 4 года назад
I love what you do , Tim , keep it up.
@IAmTimCorey
@IAmTimCorey 4 года назад
Thanks!
@nandkishorsonwale69
@nandkishorsonwale69 4 года назад
Awesome! Really You made c# learning easy. I always love your teaching. Great video. Thanks GURU.
@IAmTimCorey
@IAmTimCorey 4 года назад
You are welcome.
@nandkishorsonwale69
@nandkishorsonwale69 4 года назад
Hi Sir, I published wpf app using MSIX packaging. App is interacting with sqlite database. When I removed databases interaction related logic from app it works fine. But when I try to add databases interaction logic then app gets crash. In fact when I add Microsoft.EntityFramworkCore.Sqlite and related NuGet packages and try to publish app, It doesn't open. Why this is happening. If you guide me it will be great help.
@techdeceptive
@techdeceptive 4 года назад
Your work is very amazing... Keep it up.. We support you.. 😊
@IAmTimCorey
@IAmTimCorey 4 года назад
Thank you!
@Vengalis
@Vengalis 3 года назад
OMG. Thank you! I wasted around 2/3 of my workday today figuring out WHY i got the processor-mismatch. Thank you again.
@IAmTimCorey
@IAmTimCorey 3 года назад
Glad I could help!
@habanerohoncho
@habanerohoncho 3 года назад
Excellent explanation. Thanks you for taking the time and for sharing your knowledge.
@IAmTimCorey
@IAmTimCorey 3 года назад
My pleasure!
@diegoza75
@diegoza75 3 года назад
Thank you Tim, this tutorial was super useful form me and very easy to follow. Please continue to publish other video on this topic like to Automate the publish with Azure Dev Ops or others. Best regards
@IAmTimCorey
@IAmTimCorey 3 года назад
Thanks, and noted!
@diegoza75
@diegoza75 3 года назад
Consider if our application use a database and it is necessary to make a small change in the database schema, eg. add a field in a table. Is it possible to deploy also a SQL script to update the database schema together the application exe?
@hafizdanmanu3720
@hafizdanmanu3720 4 года назад
I really appreciate your work and thanks alot for the contribution and I want to tell you that your aim is archived
@IAmTimCorey
@IAmTimCorey 4 года назад
You are most welcome.
@williambell4591
@williambell4591 4 года назад
I had got excited when I saw this topic because I've been meaning to write myself an "Application Manager" program which would allow me to manage what applications users can request access to (from an application "Gallery"), and then perform a Zip file package download and install. At my company a lot of folks don't have Admin on their PCs, requiring IT to become involved for installations (And due to that fact, a lot of our apps have been ASP.NET MVC) But I absolutely LOVE WPF, and I'm much more productive when coding WPF, so I've been looking to complete this application manager which would provide automated installations and auto version updates similar to web apps. I had thought perhaps this MSIX installer would save me from having to developing my app manager, but it still appears Admin privs would be needed (at least in some cases) when using it. Great topic though - I appreciate you, Tim!
@IAmTimCorey
@IAmTimCorey 4 года назад
Another option is to check out my video on Squirrel. It does not need admin rights to install applications.
@williambell4591
@williambell4591 4 года назад
@@IAmTimCorey Really?!! PROPS, Bigg Tim, I'll check it out pronto!
@shelleycurrie764
@shelleycurrie764 3 года назад
Thanks Tim, really very helpful video
@IAmTimCorey
@IAmTimCorey 3 года назад
Glad it was helpful!
@majule1
@majule1 4 года назад
Great video as always. You might want to mention that is it possible to publish to a folder or single exe without using MSIX. Although you lose 'installation' of your app (it runs as a stand-alone program) and auto-updating, I found it handy for small scale beta testing to just say, 'double-click the exe file' and not worry about the certificates, etc.
@IAmTimCorey
@IAmTimCorey 4 года назад
Yep, that is a nice option. I did cover that in another video I believe.
@embossCoder
@embossCoder Год назад
keep it simple and has why-and-when-factor make you different from other channels
@IAmTimCorey
@IAmTimCorey Год назад
Thanks!
@naveenmakwana
@naveenmakwana 8 месяцев назад
Excellent video as always.
@IAmTimCorey
@IAmTimCorey 8 месяцев назад
Thank you!
@cyberslut1
@cyberslut1 4 года назад
At 29:50 "configure update settings" you mention that the app can be deployed on a server. An example on how to deploy the app on OneDrive or a server would be very nice!
@IAmTimCorey
@IAmTimCorey 4 года назад
I will add it to the list. Thanks for the suggestion.
@OMG-2
@OMG-2 3 года назад
@@IAmTimCorey Thanks for the great video - created an installer for a friend's UWP app using your instructions here. I also attempted to deploy the files to a web server as you suggested but there is more to that than meets the eye. I got the HTML file and appinstaller file to reflect the URL but IIS would not return the files (other than the INDEX.HTML file) even after getting all the mime types configured in the web.config file. I am currently stuck trying to get some support from my hosting provider. It would be really helpful if you could walk thru the intricacies of deploying to the web because the MS doco just glosses over it like it should be automatic. One other question regarding this video, I attempted to target the user desktop using the environment variables available to locate each users unique desktop path (\desktop). It worked great on my PC but I couldn't replicate that success on any other PC when placing the directory with all the output files in the package on their desktops. Any ideas why that falls apart with an error can't find file? That said I really want the web to work as that is the best way to go with the most reach to remote folks.
@MuthuKumaran-md7tv
@MuthuKumaran-md7tv Месяц назад
Saying Thanks in 2024.. As always Tim Corey !!
@IAmTimCorey
@IAmTimCorey Месяц назад
You are welcome.
@hawnyawk1
@hawnyawk1 4 года назад
Thanks Tim, seems like a better solution than sharing EXE files on the network. I guess using the installer, I can build my own store on the local network, I got lots of interesting ideas watching the video. Maybe a video on how developers should use certificates, I still don't understand it.
@IAmTimCorey
@IAmTimCorey 4 года назад
I will add it to the list. Thanks for the suggestion.
@pylvr8021
@pylvr8021 4 года назад
Great tutorial as Always
@IAmTimCorey
@IAmTimCorey 4 года назад
Thank you!
@wsurferdude_ct
@wsurferdude_ct 3 года назад
Excellent tutorial ! Thanks !
@IAmTimCorey
@IAmTimCorey 3 года назад
You are welcome!
@TheJessejunior
@TheJessejunior 4 года назад
great as always!! thank you sr!
@IAmTimCorey
@IAmTimCorey 4 года назад
You are welcome.
@keithnicholas
@keithnicholas 4 года назад
I haven't made an installer for a while, but I used to use Inno Setup.... works well. Used by things like Visual Studio Code. Completely Free
@IAmTimCorey
@IAmTimCorey 4 года назад
Yep, that's a good one.
@mahmoudsalah5359
@mahmoudsalah5359 3 года назад
thanks for video and i like your way to discription a package
@tomthelestaff-iamtimcorey7597
@tomthelestaff-iamtimcorey7597 3 года назад
Thanks for sharing and for watching the video.
@marianasetpar3158
@marianasetpar3158 3 года назад
"I cannot be considered trustworthy of myself" :'( haha Thanks for the instructions, it really helped to clarify my mind after some hours hitting my head in the wall.
@IAmTimCorey
@IAmTimCorey 3 года назад
Happy to help!
@danielheydt9864
@danielheydt9864 3 года назад
Great video! Thank you.
@IAmTimCorey
@IAmTimCorey 3 года назад
You are welcome.
@ErtBaran
@ErtBaran 3 года назад
Thank you so much. That was very helpful. You are great.
@IAmTimCorey
@IAmTimCorey 3 года назад
Glad it was helpful!
@john_wick_v2gamer361
@john_wick_v2gamer361 3 года назад
@IAmTimCorey...MAJOR changes man MAJOR improvements....lol
@IAmTimCorey
@IAmTimCorey 3 года назад
Yes sir!
@user-hh5ru8jz3j
@user-hh5ru8jz3j 3 года назад
정말 감사합니다!!! 좋아요 댓글 구독할께요 형님!
@tomthelestaff-iamtimcorey7597
@tomthelestaff-iamtimcorey7597 3 года назад
고마워, 형제!
@user-ln7ov4ji9v
@user-ln7ov4ji9v 3 года назад
[English] Thank you very much!!! I'll give you like, comment and subscribe. Bro!
@amitkbirla
@amitkbirla 3 года назад
That's nice tutorial, many thanks for that. Every steps was explained with simplicity. Really appreciate. Just few things, one, how to add custom form in the installer like agreements, system check etc. second, how can I create MSIX with custom form using azure devops pipeline.
@IAmTimCorey
@IAmTimCorey 3 года назад
I'm not sure if you can do that with the basic MSIX installer. You might need to go custom on that one.
@amitkbirla
@amitkbirla 3 года назад
@@IAmTimCorey so the same project type won't work for that ? Any other options, tool on Microsoft stack ?
@IAmTimCorey
@IAmTimCorey 3 года назад
Look into Advanced Installer or other 3rd party MSI tools.
@techdeceptive
@techdeceptive 4 года назад
We are waiting the next video of How to upload MSIX package to Microsoft Store. Please upload soon.
@IAmTimCorey
@IAmTimCorey 4 года назад
Good to know.
@chrisbenedetti
@chrisbenedetti 3 года назад
Tim, this was a great tutorial, and entertaining as well. Keep up the great work! I do have one question. The installer defaults to the Program Files\WindowsApps folder on the root drive. Is there any way to let the person installing choose a path? Maybe they want to install on D:\apps for example?
@chrisbenedetti
@chrisbenedetti 3 года назад
I did find an option to do this for anyone interested. Not quite as simple as I was hoping, but it's possible. techcommunity.microsoft.com/t5/windows-dev-appconsult/msix-how-to-copy-data-outside-the-installation-folder-during-the/ba-p/1133602
@wasined1523
@wasined1523 3 года назад
You, good sir, made my day! 2 questions: a. Is it possible to show the user a license agreement text before they can install? b. Is it possible to make updates optional for the user? Thanks!
@44artifacts
@44artifacts 9 месяцев назад
thank you!
@IAmTimCorey
@IAmTimCorey 9 месяцев назад
You are welcome.
@footballaipredictions
@footballaipredictions 2 года назад
Thanks. This is great and works brilliantly for net framework. The same project in net5 is proving trickier. Is there anything on debugging msix packages? For installs that don't go smoothly? Thanks
@themorleyc
@themorleyc Год назад
Thanks for this Tim! Any pointers on MSIX for installing Windows Services projects please?
@stevechaille7255
@stevechaille7255 Год назад
Thanks!
@IAmTimCorey
@IAmTimCorey Год назад
Thank you!
@JohnPeter-yf5jf
@JohnPeter-yf5jf 4 года назад
Was hoping you would do one on this. Are you planning on adding to to the TimCoManager?
@IAmTimCorey
@IAmTimCorey 4 года назад
That is a good possibility.
@jasonbie3576
@jasonbie3576 3 года назад
Hi Tim, thanks for your video, it's very clear. I have one question, after build it will generate two files and a folder, how could only output one .msix file? Thanks.
@metekaba6532
@metekaba6532 2 года назад
Hi Tim! Thanks for the video. I have a question that how can we add the other layers of the project? I have BLL, CUL, and DAL beside the main GUI project which has the windows. Thanks in advance!
@soulsearch7383
@soulsearch7383 2 года назад
Hi Tim. Great content. I've been trying to figure this out for a few days and you saved the day as always. I have a little problem. When I package my app it says that the files were copied to the output locations successfully, but the folder remains empty. Any ideas? Also I set the Build Bundle to always but on the confirmation screen still says Bundle NO.
@arnoud877
@arnoud877 3 года назад
Hello Tim, This is kinda golden tutorial! Super beneficial and explained in details. Many Thanks! Even they are not directly related your content here, I have two (may be advanced or irrelevant (: ) question on mind : 1. Is it a way to create development certificate while publishing (create new trusted certificate) with end date bigger than 1 (one) year? 2. Is there a way to include not native libraries and scripts inside that installer? For ex: A winforms desktop app which use a python scripts and python libraries(pandas, numpy), could be able to include in MSIX installer project?
@IAmTimCorey
@IAmTimCorey 3 года назад
Glad you liked it!
@arebelstory
@arebelstory 4 года назад
Hey Tim, Gould you please make a Video about VS Blend? Is it still relevant in 2020? When and how to use it? There are so less videos about Blend there...
@IAmTimCorey
@IAmTimCorey 4 года назад
I will add it to the list. Thanks for the suggestion. As for its relevance, it is still relevant but only to a select few people since it is a UI-specific tool that is mostly just for display changes.
@StudentCompanion
@StudentCompanion 4 года назад
Thanks for the great video as always. Does this installer support the .NET Framework or only Core? Does it work only under Windows 10 like the UWP? What about windows 8 or 7? Does it have an option to check and install prerequisites like .NET framework or SQL Sever express?
@IAmTimCorey
@IAmTimCorey 4 года назад
It only supports .NET Core because it has to do a self-contained installation where it bundles .NET Core with the application so that it does not have to depend on the client machine to have .NET Core. The MSIX installer works on Windows 10 natively and will work on Windows 7 and beyond if you install the MSIX Core package (a one-time install). You cannot install items on the client machine that might remain after the package is uninstalled so you cannot install SQL Server Express or anything similar. It is a sandboxed installation.
@StudentCompanion
@StudentCompanion 4 года назад
@@IAmTimCorey ok thanks for the info and great tutorial
@chezchezchezchez
@chezchezchezchez 4 года назад
IAmTimCorey what about SQLite ? My app uses that. How will a version update NOT touch a users database? Also, how do alter the DB if I NEED to? Thanks!!
@chezchezchezchez
@chezchezchezchez 4 года назад
Hello?
@willimnot
@willimnot 3 года назад
28:16 How do I access this version number in the main program? I'm able to get the "Assembly Version" and the "File Version" but they do not match the version number here that automatically increments.
@user-mk6ec3de4z
@user-mk6ec3de4z 7 месяцев назад
Hey Tim, I must say that I found the tutorial very helpful!! I have one question, is it possible to automatically install a ".inf" driver using Windows Application Packaging Project?
@dangerzonee465
@dangerzonee465 3 года назад
Thank you for video. I was wondering if the automated process and deployment through azure dev ops was out yet?
@IAmTimCorey
@IAmTimCorey 3 года назад
I haven't completed this for MSIX yet. I just did something similar in TimCo with just the self-contained EXE file.
@drewrodrigues
@drewrodrigues Год назад
Thanks for the guide! I'm curious, are you familiar with packaging in Azure Dev Ops or Github? I've seen various guides that cover how to do so through the UI, but none in CD. If you are, it would be very helpful!
@IAmTimCorey
@IAmTimCorey Год назад
For MSIX? Not really, no. I am planning on doing a video covering creating NuGet packages with CI/CD, though.
@brianpacheco3297
@brianpacheco3297 3 года назад
Could MSIX be used to bypass license screens or certain "click through" dialog boxes users need to click on in order to automate package deployment?
@gopichandarselvaraj5250
@gopichandarselvaraj5250 4 года назад
Hey Tim, this was awesome video, is there a way to include custom script that need to be run before starting installer and after installation complete Custom action possible?
@IAmTimCorey
@IAmTimCorey 4 года назад
Not really. Custom Actions can only be executed before the app is opened or when it’s closed. It cannot be placed in the install sequence. Scripts executions are added to the config.json file. -from www.advancedinstaller.com/msix-limitations.html
@gopichandarselvaraj5250
@gopichandarselvaraj5250 4 года назад
@@IAmTimCorey Thanks alot. will go through..
@christianimfeld7357
@christianimfeld7357 4 месяца назад
Thanks a lot Tim for the great introduction. Wondering, if creating a MSIX installer is (still) the preferred way to create a "installeable" package of a .NET 8.0 solution, with the target platform on windows systems? Or is there a newer way to create such "installeable" packages?
@IAmTimCorey
@IAmTimCorey 4 месяца назад
From Microsoft? MSIX is the solution. There are third-party solutions that offer alternatives.
@christianimfeld7357
@christianimfeld7357 4 месяца назад
@@IAmTimCorey Thanks! Yes, it is Microsoft. We use Visual Studio 2022. We have a "windows service" which provides a REST API (based on Kestrel). The "windows service" will get installed on customer machine. I'm looking for the best way to provide this "installeable" package to the customer. I would like to have as less dependencies as possible. Waht would be the advantage of using 3rd party tools, like Wix Toolset? Is there any benefit?
@bollywoodcastingcouch
@bollywoodcastingcouch 3 года назад
Thanks Tim for this great video it is very helpful for me. Could you please extend this topic for SQL Server database engine, Instance and Database installation through this package.
@IAmTimCorey
@IAmTimCorey 3 года назад
Noted, added to the list.
@bollywoodcastingcouch
@bollywoodcastingcouch 3 года назад
@@IAmTimCorey Thank you so much sir.
@microtechie4834
@microtechie4834 Год назад
@@IAmTimCorey Hey Tim thanks, can u share video link to create setup with database scenario.
@dhiliph98
@dhiliph98 4 года назад
Hey Tim, really a nice tut.. Thanks a lot.. I have one question. Is it possible to distribute updates over GitHub, IIS or S3 Buckets? Like something we have in Squirrel.Windows?
@IAmTimCorey
@IAmTimCorey 4 года назад
It is possible to do that, yes. You can put that updates folder in a web-accessible location to distribute your updates.
@dhiliph98
@dhiliph98 4 года назад
@@IAmTimCorey Thank You for the clarification Tim.. Have a great day :)
@natalyalmassry6775
@natalyalmassry6775 4 года назад
Hello Tim, Thank you for the video! It is very helpful I have one question. Is there a way to automatically uninstall the older version of the application before installing the new version?
@IAmTimCorey
@IAmTimCorey 4 года назад
This way updates the application. There isn't a way to uninstall fully and then install a new, fresh version.
@natalyalmassry6775
@natalyalmassry6775 4 года назад
@@IAmTimCorey thank you so much for your help!
@DavidBailey-zb7xb
@DavidBailey-zb7xb 4 года назад
Great video. Following your instructions worked too as you missed out nothing! I could not get Click-Once to function properly in the past. You mention that you would be making a video on uploading to the Microsoft Store. How is that coming along? When you do, can you discuss things such as payment methods, trial periods and the like and how they are set up?
@IAmTimCorey
@IAmTimCorey 4 года назад
The video is on my list but it isn't done yet. Not sure of a release date yet. I'll add those suggestions to the list.
@DavidBailey-zb7xb
@DavidBailey-zb7xb 4 года назад
@@IAmTimCorey Appreciate that. Also is there a way to allow friends, testers etc to download for free.
@AnkitaPadmanabhan
@AnkitaPadmanabhan 3 года назад
It was a very useful video. Could you please make a video on how to have a feature(premium features) unlocked by using a unique activation key for each user, in a WPF application.
@IAmTimCorey
@IAmTimCorey 3 года назад
Noted, added to the suggested topics list, thanks.
@ihershkovitz
@ihershkovitz 3 года назад
Hi Tim, Thanks for a great tutorial. I was wondering if the same process will work to get the app installed on a windows server machine. THANKS
@IAmTimCorey
@IAmTimCorey 3 года назад
Probably not. It is meant to install under a user's profile, and it isn't really designed for being installed on a server.
@ihershkovitz
@ihershkovitz 3 года назад
@@IAmTimCorey THANKS! are you familiar with a way to perform something similar that will able to install a WPF app on windows server machine ?
@girornsveinsson7970
@girornsveinsson7970 4 года назад
Thanks a lot for the video. This looks a bit like a mix of installing with ClickOnce and the Squirrel method, you demonstrated in a video before. Do you recommend this or Squirrel? Another thing. Is there a way for these installers to check if dependencies exist in the target machine's GAC and install them there if they are not? In the case of use of the big libraries provided by companies like ComponentOne and DevExpress the target machines tend to get blown by copying the same dll's over and over again on the target machines in each application folder of new applications.
@IAmTimCorey
@IAmTimCorey 4 года назад
Both installers have their place. It depends on your scenario. MSIX cannot touch the GAC or registry because it wants to have a clean uninstall. The only way to do that is to be self-contained.
@erikjansen9149
@erikjansen9149 4 года назад
thnx. very usefull. But my next question is, do I have any influence on the installing process? e.g. define the destination location of specific files? My app prescribes these locations.
@IAmTimCorey
@IAmTimCorey 4 года назад
No you do not. The installer needs to have the ability to completely uninstall the app so it retains control over what gets installed where. It is all installed inside of a sandbox.
@ahmadalbaz6059
@ahmadalbaz6059 4 года назад
thank you for the effort Tim i have a question though will this work if i want to install a windows service? thanks already
@IAmTimCorey
@IAmTimCorey 4 года назад
No, since installing a service is a PC-changing event and MSIX files want to be isolated changes that can be fully undone. MSIX is for desktop apps.
@techdeceptive
@techdeceptive 4 года назад
@@IAmTimCorey Hello, but what if our application is using Windows Service to run or may be create Service to accomplish any task. So is it support in MSIX package? Please reply.
@jerryhuang3565
@jerryhuang3565 Год назад
thank you... Is it possible to run MAUI development directly on Windows without using MSIX packaging for simple small development? Of course, if not, I can continue to use Flutter or React.
@balborando
@balborando 2 года назад
Thanks for the tutorial. I have a question. I want to sign also the exe of the application with a certificate, not only the package. With click once it works by clicking the option 'sing the ClickOnce manifests'. But with MSIX is the exe not signed. Any sugestions?
@jamesbest3347
@jamesbest3347 4 года назад
Tim, this is pretty awesome. I don't know how in depth you've used these installers, but I'd like to know your thoughts on this vs WiX which is literally the bane of my existence. It appears as though MSIX make it much easier with a GUI (I always said if someone could make a WiX GUI and sell it for 1000 bucks they'd make a killing). Does MSIX support pre and post installation scripts? Also does it have any support for registering/GACing like the original Visual Studio Installer Creator from VS2013. Lastly, does MSIX allow you to create a step by step installer that allows you to choose your install path?
@IAmTimCorey
@IAmTimCorey 4 года назад
The things you are asking for are mostly not something MSIX will do. The reason goes back to what MSIX represents - a sandboxed application that has very little access to the system. We bypass some of that when we use WPF applications because they get full access but accessing the GAC, modifying the registry, and other similar tasks are mostly out. The reason why is because MSIX wants to be a clean uninstall, which it can't do if it does any of those things. If you want a Wix alternative, you might look at Inno Setup to see if they have what you need ( www.jrsoftware.org/isinfo.php ).
@jamesbest3347
@jamesbest3347 4 года назад
@@IAmTimCorey Tim, thank you so much for your time and effort to help the .NET community. It is greatly appreciated!
@martinrj30
@martinrj30 4 года назад
If you are interested in the MSIX capabilities. techcommunity.microsoft.com/t5/msix-blog/msix-packaging-tool-insider-preview-feb-2019-now-available/ba-p/357347 and also a build2019 talk on the 'install exe and files and make registry changes etc.' then make diff of changes into MSIX: mybuild.techcommunity.microsoft.com/sessions/77012 note all MSIX packages only 'install' to an isolated user environment.
@tomasknor8947
@tomasknor8947 4 года назад
Does MSIX works with windows form applications build in framework? If no, what should i use? I am beginner so this might be a stupid qustion. I love your vids, you really inspirated me in coding. Thanks
@IAmTimCorey
@IAmTimCorey 4 года назад
It does not work for the .NET Framework. If you need to support the .NET Framework, I would suggest looking at Squirrel: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-W8Qu4qMJyh4.html
@tomasknor8947
@tomasknor8947 4 года назад
@@IAmTimCorey thanks i will definitly watch it
@mhpkr
@mhpkr 2 года назад
Great video ! I have a question here. Lets say the application is using SQLite as a local database , would automatic updates affect the local database content ? Thanks.
@IAmTimCorey
@IAmTimCorey 2 года назад
Possibly, but I don't believe so. You want to make sure that local databases are only used for caching, not things you want to store long-term though.
@mhpkr
@mhpkr 2 года назад
@@IAmTimCorey thanks Tim! I am quite new to c# and everything so please bear with me here. I am building a really small inventory management software as practice for a friend. I was assuming SQLite is enough for a local small database. According to your reply the local databases are for caching. So should I use service-based database even for a small application like this ? Appreciate your time
@KurtInTampa
@KurtInTampa 4 года назад
Hey Tim, Thanks for the video. My customers tend to have an Admin with install privileges and whole bunch of users that do not. Is it possible to configure the MSIX to allow the Admin to install to All Users or maybe by virtue of that Trusted Certificate, can the Admin create a group policy that would allow less privileged to install from the web my signed software? Also, if you do a follow up, could you go through the process or maybe discus here, viable approaches to publishing to a remote web server and allow your customers to decide when to upgrade (or downgrade) versions? Thanks, Kurt
@IAmTimCorey
@IAmTimCorey 4 года назад
An MSIX installer does not need admin rights to install. That means your users should be able to install it without an issue (unless there is a group policy specifically stopping it). As for the follow-up, yep, that is on the list. Thanks for the suggestion.
@sergiomc
@sergiomc 3 года назад
Hi, great video and tutorial!!! I tried with a APP on Net Framework 4.5, but I get an error, than it needs Net 4.6.1 version minimal... is there a way to make it work on 4.5 ? Thank you !!
@IAmTimCorey
@IAmTimCorey 3 года назад
I don't believe so. Sorry.
@keithprice3369
@keithprice3369 3 года назад
I watched your older video about Squirrel installer app. Do you now prefer MSIX over that? Or do they each have scenarios where they're better suited?
@user-he2nd5hk4e
@user-he2nd5hk4e 3 года назад
Squirrel not working with .net core projects
@IAmTimCorey
@IAmTimCorey 3 года назад
They each have their benefits and uses. I personally prefer Squirrel projects because they are simpler in some ways.
@IAmTimCorey
@IAmTimCorey 3 года назад
Yes it does work with .NET Core. It appears to use .NET Framework but that is just old naming that hasn't been fixed. It doesn't rely on .NET at all. You can deploy anything you want, including non-.NET projects.
@stefangulas
@stefangulas 3 года назад
Hi Tim, thanks for this very helpful tutorial. Unfortunately I have run into GitHup Push to Origin it has 50 to 60 new objects but does stop at one of the last ones and will not continue. I have tried this on two different projects and could not resolve it. Maybe any suggestions?
@IAmTimCorey
@IAmTimCorey 3 года назад
Identify what the file is. There may be a limitation on size or it might be an invalid file type. The error message should give you more information.
@thorduffin4485
@thorduffin4485 2 года назад
Always love your videos, Tim! However, I have a question/issue that I am stuck on. I set the "Installer Location" (as directed by the video) to, in my case, "C:\mydir1\mydir2" It get's ignored, but the file installs. I couldn't find where, and finally learned that it was put into "Program Files\WindowsApps". I've spent quite a bit of time trying to figure out what I need to change to get it to install where I told it to. Any help from you or your audience would be great.
@IAmTimCorey
@IAmTimCorey 2 года назад
That's not really what MSIX does. It is designed to be installed as a Windows App. Custom installation locations are more for MSI installers. MSIX installers are meant to be self-contained and easy to uninstall. That means a central installation location.
@olamas92
@olamas92 Год назад
@@IAmTimCorey 👌 ok
@paulsanchez5030
@paulsanchez5030 3 года назад
dude... 58 minutes??? !!! 2x speed anyone!!! no skips also... great!
@tomthelestaff-iamtimcorey7597
@tomthelestaff-iamtimcorey7597 3 года назад
Do what works for you! Many folks adjust the speed, nothing wrong with that. Thanks for watching!
@vittoriomorellini1939
@vittoriomorellini1939 3 года назад
Hi Tim, beatiful video. A question: where is fisically installed on PC the application when installed from MSix ?? I did not find it !! If I have to deploy to customers and install log directory on base directory app, how can I do ?? I was not able to do with msix bundle. I did it with classic installer project
@IAmTimCorey
@IAmTimCorey 3 года назад
I believe your application will be installed in AppData. To put a log directory in the folder where the application is installed, just use the relative path instead of the absolute path. Either that or you can ask the application where it is installed (it knows).
@vittoriomorellini1939
@vittoriomorellini1939 3 года назад
@@IAmTimCorey Thanks Tim, you are my tecnical leader on .Net Core. The app is installed in: "C:\Program Files\Windowsapp\cashReg_... " but I have no access to that directory, I have no rights on that dir, even if I'm administrator. On "AppData" only some configuration files are installed. Question: where do I have to set "relative path instead of absolute path" ? in the building phase ? while I'm configuring the package ?? Thanks in advance. How can I ask it to the application ? I don't understand your suggestion.
@shashikanttantarpale9417
@shashikanttantarpale9417 Год назад
So if I want to install the application on some other machine, Do I just need to copy paste the DemoInstaller folder on the target machine and have all the required framework installed?
@FreyClante
@FreyClante 2 года назад
Hi @Tim Corey --> Is this method also applicable to a .Net 4.x WPF app and can it be build that way in Azure DevOps? Or how would you go about that?
@IAmTimCorey
@IAmTimCorey 2 года назад
Yes, it can. I don't have any demos showing that off, though.
@shivapola5958
@shivapola5958 3 года назад
Thanks for the superb video. How to install this in client's machine? Like windows server 2016/2019. I've copied the installer/.msix, no app couldn't recognize this installer. And which one do you recommend squirrel.windows or msix?
@IAmTimCorey
@IAmTimCorey 3 года назад
MSIX has certain system requirements: docs.microsoft.com/en-us/windows/msix/supported-platforms I use the best tool for the job. Some jobs, that is squirrel. Others, it is MSIX. And sometimes it is another solution entirely.
@techforyoubyjr
@techforyoubyjr 3 года назад
@@IAmTimCorey I am having a similar issue. I'm trying to install the package in a Windows Server Datacenter Virtual Machine on Azure, but it shows me an error message indicating that doesn't recognize .appinstaller file type. Do you have any suggestions or workaround to solve this?
@huzaifaaseel
@huzaifaaseel 3 года назад
Thx Tim .. Fast question: my wpf app start process to excute command in cmd ,work s fine made msix and install app (run as admin) ... Boom nothing happin to call cmd ... I hope if there custom way to give permission ..like this(cmd) and run as defult run administrator .. In internet there is advance installer and other tool to do troubleshooting ... But i want without this tools ... I prefere cutom build with my vs
@wilbertholkema
@wilbertholkema 4 года назад
Hi Tim, Did I saw the size of your package for this amazing app was about 125Mb???
@IAmTimCorey
@IAmTimCorey 4 года назад
Yep. The reason is because it takes all of .NET Core with it so that it can be sure it will run on any machine.
@shelleycurrie764
@shelleycurrie764 3 года назад
would you perform the same process if you were going to create an installer with a SQL Server database. Do you have a video for this Tim ?
@IAmTimCorey
@IAmTimCorey 3 года назад
No, if you are going to install a SQL Server database, you would use a different process. Probably I would recommend using a DevOps pipeline (CI/CD). I demo that in the TimCo Retail Manager series. You typically don't install a SQL database for desktop applications, though. You typically have one central database that all of the desktop applications use.
@SørenBechChristensen
@SørenBechChristensen 3 года назад
Hi, great video - does this work well with Azure DevOps Pipelines?
@IAmTimCorey
@IAmTimCorey 3 года назад
It can, yes.
@seventhanger9274
@seventhanger9274 3 года назад
Hi Tim! Great video as always! I've a question for you, I work as a .NET developer in an internal corporate environment in which we make lots of desktop applications mostly in WPF and we deploy them by using the easier way which is publishing in ClickOnce platform. When I started in UWP development I was sooo happy with the new UI and then I crashed with the deployment limitations. As we send our applications to lots of internal users it's impossible for them to install the certificate manually and as we work in an internal environment, we're not able to send our apps to the Microsoft Store. In your opinion, what could be your best approach on that situation? We have a code signing service which signs the executable file of the installer, in case of ClickOnce, is setup.exe. May they sign the msix file too? Or do they have to give me a private certificate? So I can include it in my solution Thanks!
@IAmTimCorey
@IAmTimCorey 3 года назад
You need a code signing certificate. If you have a code signing service, you might already have something like that in place.
@seventhanger9274
@seventhanger9274 3 года назад
@@IAmTimCorey Thanks Tim!
@eduardo.sanchez
@eduardo.sanchez 4 года назад
Nice tutorial. Now I have a question. I tried this with an existing WPF app I made. It contains a folder with images but after creating the package it didn't include those images from the WPF project. How do you include those files in the MSIX package?
@IAmTimCorey
@IAmTimCorey 4 года назад
Are they marked as included with the project?
@eduardo.sanchez
@eduardo.sanchez 4 года назад
@@IAmTimCorey I figured it out. I have the images marked as Content instead of Resource.
@drewfyre7693
@drewfyre7693 4 года назад
Very nice video! So how does the installation process on the clients pc actually work? Which files do I send him? How can I deploy the installation files to say an FTP server so that it can always check for updates? If I just deploy it locally on my machine how will it check for updates when my PC is offline.
@IAmTimCorey
@IAmTimCorey 4 года назад
If you are just having them install once, you could send them the msixbundle file. If you want them to have the ability to update the application, you would point them to the appinstaller file and make sure you transfer all of the files and folders to that same location. Ideally, you FTP these files to a web server that hosts your index.html page that has the link to your installer. As far as checking for updates offline, that is not possible. You need to be connected to the location where your updates are in order to get those updates.
@drewfyre7693
@drewfyre7693 4 года назад
@@IAmTimCorey Alright thank you for that answer. One more question, how about obfuscating your app? We develop business apps for internal use which often have to be obfuscated so that they cant be reverse engineered. Currently we are using Babel Obfuscator for this. Is there any way to handle obfuscation with VS?
@martinrj30
@martinrj30 4 года назад
@@drewfyre7693 great question - I'm also in the same boat. I was thinking of creating an azure secure storage solution and require users to oauth register/authorize through azure AD, then retrieve any secrets. RE: Distribution: I have put the files on our webserver (needed a web.config update), but the trick is knowing the URL of the file/folder when creating the packages and putting it in the 'output location'.
@anthonywoods2550
@anthonywoods2550 4 года назад
Gonna try to solve the 1 error in MSIX file for manifest file. I like the way MSIX installer works. Gonna try to stick with it. I will try to go to MSIX community to get help with this error.
@IAmTimCorey
@IAmTimCorey 4 года назад
Yep, they should be able to help.
@EyeOfTheMind86
@EyeOfTheMind86 2 года назад
But if you create a local installer you basically need to give the other person the bundle installer and the certificate only right? I guess that if you create a server where to store the installer, you just give them the 1 kb .appinstaller file which will scan the latest file on the server, am I right?
@mvelaya
@mvelaya 3 года назад
Hi Tim! Thanks for the great video! If the source code is in Azure repos and multiple people are working on the code, how does that work with the certificate and publishing the build?
@IAmTimCorey
@IAmTimCorey 3 года назад
If you have your code in a repo, you have to commit your code to the repo so while five people might be working on it at the same time, you commit one at a time (even if you are all trying at the same time). After the first person commits, the people after that will need to pull down the latest changes, resolve any conflicts and then push their changes. So the changes go in one at a time, not all at once. On the publish side, if you set up your CI/CD process to automatically create and publish your code (great for development, not great for production without an approval process), the builds will be sequential. If you stack up multiple builds while the first one is running, you can have the choice of taking the last build or you can build them all in order.
@mvelaya
@mvelaya 3 года назад
@@IAmTimCorey thanks Tim! I looked into CI/CD pipelines. Microsoft advised to put the certificate in the Azure library as a secured file. So I added the certificate file extension to gitignore and uploaded it to azure library instead.
@mvelaya
@mvelaya 3 года назад
@@IAmTimCorey Btw, if you can make another video about the entire process of packaging a .Net app with MSIX and Azure CI/CD pipelines i would really appreciate it. There are not many good tutorials out there for this.
@jpboy1962
@jpboy1962 4 года назад
Excellent. Thank you. ClickOnce deployment does not let you move the installation location after the package is built. For example I have an app that I want to give to my clients that they can place in their S3 bucket based web site to deploy the app and get updates. ClickOnce does not allow this as the update location is signed along with everything else. Squirrel allows this but it appears to be a dead project now. Does MSIX support moving the install location after the package is built?
@IAmTimCorey
@IAmTimCorey 4 года назад
Squirrel is not dead (it almost died but was revived). As for MSIX, no it does not allow you to choose your installation location. Installers are going away from this because doing so means that uninstalling your application might leave artifacts behind.
@jpboy1962
@jpboy1962 4 года назад
@@IAmTimCorey In the words of Magic Max it is "mostly dead". ;) As for my question, I used the wrong word. Not installation location but deployment location or install-from location. I have spend the last 2 days implementing MSIX for one of my apps and I answered my own question: yes you can change the location after the package has been built. All thanks to your great video!
@shaiarocks
@shaiarocks 4 года назад
Followed along with the tutorial and I got a working installer. I have some external files I need to copy during the install. Is there a "hook" to events, for example after the install event is complete, copy this folder?
@IAmTimCorey
@IAmTimCorey 4 года назад
That's going to be tricky because the goal of MSIX is a sandbox environment, where nothing outside the sandbox gets changed (no registry, no dependency installation, no GAC, etc.) Your best bet would be to include the files as content files in your project.
@shaiarocks
@shaiarocks 4 года назад
@@IAmTimCorey Thank you for taking the time to respond. I think I forgot about that, this installer is really just like getting an app from the Microsoft Store.
@mapplesyrup7661
@mapplesyrup7661 4 года назад
Hi Tim is MSIX can be deployed through SCCM Machine Level silent installation?
@IAmTimCorey
@IAmTimCorey 4 года назад
I believe so but I am not certain.
@lianlgu00
@lianlgu00 3 года назад
Great tutorial. I followed the instructions on my WPF app. After installation and launch, my app ran in the background. Any idea how to fix it?
@IAmTimCorey
@IAmTimCorey 3 года назад
Not sure why that happened. Sorry.
@jeroenj
@jeroenj Год назад
Do I have to make a new certificate for every application? I have two apps I want to have on my other device. If not, where is the certificate located?
@JellyPies
@JellyPies 4 года назад
Very helpful video, thank you! I'm trying to submit my app to the Microsoft Store, it got denied before for some reason the installer is saying the app MUST use runFullTrust, I don't need runFullTrust however, I'm not collecting or using anything that needs it. Apparently it's coming back as I'm collecting personal data, and the app keeps getting denied! When I tried to manually delete it from the XML manifest for the installer, I get an error saying "The element specified requires "runFullTrust" capability. I can't find any help online :(
@IAmTimCorey
@IAmTimCorey 4 года назад
Unless you are packaging a UWP application, you have to have runFullTrust since that is the only way WPF or WinForms operates. Here is an article with more information: docs.microsoft.com/en-us/archive/blogs/appconsult/a-simpler-and-faster-way-to-publish-your-desktop-bridge-applications-on-the-microsoft-store
@ibrahimhussain3248
@ibrahimhussain3248 3 года назад
Is it possible to use sqlcmd with the installer? To execute database publish scripts generated by ssdt projects? Or something similar?
@IAmTimCorey
@IAmTimCorey 3 года назад
With the installer? No. Later through your application itself? Yes, that is possible.
@youcefbourouba3673
@youcefbourouba3673 9 месяцев назад
hey tim hope you doing well , just one question if i sent this application to another pc , and i published a new update on my pc does the other pc get the update automatically?
@IAmTimCorey
@IAmTimCorey 9 месяцев назад
Only if the other PC can see the update location on the first machine. That's why we publish to servers.
@wyattmattas8294
@wyattmattas8294 2 года назад
​ @IAmTimCorey Is it possible to use this method but have the package install for all users rather than just the current user?
@IAmTimCorey
@IAmTimCorey 2 года назад
I don't believe so.
@wyattmattas8294
@wyattmattas8294 2 года назад
@IAmTimCorey is there a better option to install for all users or do I need to use a third party application?
@MrBrouilles
@MrBrouilles 4 года назад
Auto-updates is binary diff? Or it download entirely the new version and replace the older? Thanks!
@IAmTimCorey
@IAmTimCorey 4 года назад
Yes. Here is more info on it: docs.microsoft.com/en-us/windows/msix/desktop/managing-your-msix-deployment-update
@MrBrouilles
@MrBrouilles 4 года назад
@@IAmTimCorey Thanks!
@anthonywoods2550
@anthonywoods2550 4 года назад
Tim, Tried doing what you said, but could not load the Windows Application Package. I tried everything, but nothing worked, so I downloaded the MSIX package separately and was able to create an MSIX Package. I got an error about the manifest file. I wonder why I was not able to load the windows app package in my VS Community edition.??? I selected UWP just like you said but to no avail.
@IAmTimCorey
@IAmTimCorey 4 года назад
It sounds like you have a configuration issue in Visual Studio. It should be able to do it (VS2019, right?)
@anthonywoods2550
@anthonywoods2550 4 года назад
Yes, VS 2019 Community
@sakethravirala7912
@sakethravirala7912 4 года назад
Thanks for the video. Can you tell me how the Google Chrome installer works? Just by a single click, how it installs and is there any way to change settings for Chrome like the installation path, etc. How an applications like Chrome are bundled? Thanks in advance.
@IAmTimCorey
@IAmTimCorey 4 года назад
There isn't really a Chrome installer. It is just a simple web page that launches the "real" installer. You can see that by opening up the page that it creates in an editor.
@sakethravirala7912
@sakethravirala7912 4 года назад
@@IAmTimCorey How to create an installer which installs an application just on a single click? The chrome "real" installer doesn't have any user input but installs in the system.
@IAmTimCorey
@IAmTimCorey 4 года назад
That's an apples and oranges comparison, though. When you are installing a Chrome extension, you are adding on to an already-installed application (Chrome). In our case, we are installing a brand new application. There isn't a way to make that process quicker unless you changed to a different installer mechanism like Squirrel: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-W8Qu4qMJyh4.html
Далее
Intro to UWP (Universal Windows Platform) Apps in C#
1:03:45
Best father #shorts by Secret Vlog
00:18
Просмотров 3,2 млн
MSIX AppAttach Portal | Azure Virtual Desktop
14:29
Просмотров 28 тыс.
Creating Professional Installations with WiX | Tips
46:08
Watch this before choosing the MSIX packaging type
37:00