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

Sdílet
Vložit
  • čas přidán 23. 02. 2020
  • 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...

Komentáře • 434

  • @sundeepyama
    @sundeepyama Před 3 lety +6

    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  Před 3 lety

      Glad I could help. Be sure to check out my other videos.

  • @NoirMorter
    @NoirMorter Před 2 lety +1

    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!

  • @jurgenbartalis1933
    @jurgenbartalis1933 Před 3 lety +27

    I wish Microsoft's instructions were as easy to understand and detailed as yours are.

    • @IAmTimCorey
      @IAmTimCorey  Před 3 lety +4

      I am glad my explanations are clear.

  • @eastmanh1
    @eastmanh1 Před 3 lety +2

    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.

  • @anthonywoods2550
    @anthonywoods2550 Před 4 lety +2

    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!

  • @lenardbartha6722
    @lenardbartha6722 Před 4 lety +2

    Awesome! We use Advanced Installer, it is fantastic. Thanks for the video, love it as always.

  • @leonardegray1769
    @leonardegray1769 Před rokem

    Excellent tutorial. Mr. Corey, you are a very talented man and an outstanding instructor. Your attention to details is what makes you stand out!

  • @AbubakrMahdiSan
    @AbubakrMahdiSan Před 4 lety +1

    I love what you do , Tim , keep it up.

  • @nandkishorsonwale69
    @nandkishorsonwale69 Před 4 lety +2

    Awesome! Really You made c# learning easy. I always love your teaching. Great video. Thanks GURU.

    • @IAmTimCorey
      @IAmTimCorey  Před 4 lety +2

      You are welcome.

    • @nandkishorsonwale69
      @nandkishorsonwale69 Před 4 lety

      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.

  • @habanerohoncho
    @habanerohoncho Před 3 lety

    Excellent explanation. Thanks you for taking the time and for sharing your knowledge.

  • @diegoza75
    @diegoza75 Před 3 lety

    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  Před 3 lety

      Thanks, and noted!

    • @diegoza75
      @diegoza75 Před 3 lety

      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?

  • @techdeceptive
    @techdeceptive Před 4 lety +1

    Your work is very amazing... Keep it up.. We support you.. 😊

  • @Vengalis
    @Vengalis Před 3 lety +4

    OMG. Thank you! I wasted around 2/3 of my workday today figuring out WHY i got the processor-mismatch. Thank you again.

  • @majule1
    @majule1 Před 4 lety +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  Před 4 lety +1

      Yep, that is a nice option. I did cover that in another video I believe.

  • @hawnyawk1
    @hawnyawk1 Před 4 lety

    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  Před 4 lety

      I will add it to the list. Thanks for the suggestion.

  • @hafizdanmanu3720
    @hafizdanmanu3720 Před 4 lety

    I really appreciate your work and thanks alot for the contribution and I want to tell you that your aim is archived

  • @shelleycurrie764
    @shelleycurrie764 Před 3 lety

    Thanks Tim, really very helpful video

  • @cyberslut1
    @cyberslut1 Před 4 lety +11

    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  Před 4 lety +4

      I will add it to the list. Thanks for the suggestion.

    • @OMG-2
      @OMG-2 Před 3 lety +2

      @@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.

  • @naveenmakwana
    @naveenmakwana Před 9 měsíci

    Excellent video as always.

  • @pylvr8021
    @pylvr8021 Před 4 lety

    Great tutorial as Always

  • @embossCoder
    @embossCoder Před rokem

    keep it simple and has why-and-when-factor make you different from other channels

  • @williambell4591
    @williambell4591 Před 4 lety

    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  Před 4 lety +2

      Another option is to check out my video on Squirrel. It does not need admin rights to install applications.

    • @williambell4591
      @williambell4591 Před 4 lety

      @@IAmTimCorey Really?!! PROPS, Bigg Tim, I'll check it out pronto!

  • @mahmoudsalah5359
    @mahmoudsalah5359 Před 3 lety

    thanks for video and i like your way to discription a package

  • @marianasetpar3158
    @marianasetpar3158 Před 3 lety +2

    "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.

  • @TheJessejunior
    @TheJessejunior Před 4 lety

    great as always!! thank you sr!

  • @wsurferdude_ct
    @wsurferdude_ct Před 3 lety

    Excellent tutorial ! Thanks !

  • @ErtBaran
    @ErtBaran Před 3 lety

    Thank you so much. That was very helpful. You are great.

  • @MuthuKumaran-md7tv
    @MuthuKumaran-md7tv Před 2 měsíci

    Saying Thanks in 2024.. As always Tim Corey !!

  • @danielheydt9864
    @danielheydt9864 Před 3 lety

    Great video! Thank you.

  • @keithnicholas
    @keithnicholas Před 4 lety

    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

  • @wasined1523
    @wasined1523 Před 3 lety

    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!

  • @john_wick_v2gamer361
    @john_wick_v2gamer361 Před 3 lety

    @IAmTimCorey...MAJOR changes man MAJOR improvements....lol

  • @chrisbenedetti
    @chrisbenedetti Před 3 lety

    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 Před 3 lety

      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

  • @footballaipredictions
    @footballaipredictions Před 2 lety

    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

  • @willimnot
    @willimnot Před 3 lety +2

    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.

  • @themorleyc
    @themorleyc Před rokem

    Thanks for this Tim! Any pointers on MSIX for installing Windows Services projects please?

  • @soulsearch7383
    @soulsearch7383 Před 2 lety

    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.

  • @metekaba6532
    @metekaba6532 Před 2 lety

    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!

  • @brianpacheco3297
    @brianpacheco3297 Před 3 lety

    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?

  • @jasonbie3576
    @jasonbie3576 Před 3 lety

    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.

  • @amitkbirla
    @amitkbirla Před 3 lety

    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  Před 3 lety

      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 Před 3 lety

      @@IAmTimCorey so the same project type won't work for that ?
      Any other options, tool on Microsoft stack ?

    • @IAmTimCorey
      @IAmTimCorey  Před 3 lety

      Look into Advanced Installer or other 3rd party MSI tools.

  • @techdeceptive
    @techdeceptive Před 4 lety +2

    We are waiting the next video of How to upload MSIX package to Microsoft Store. Please upload soon.

  • @balborando
    @balborando Před 2 lety

    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?

  • @JohnPeter-yf5jf
    @JohnPeter-yf5jf Před 4 lety +2

    Was hoping you would do one on this.
    Are you planning on adding to to the TimCoManager?

  • @arnoud877
    @arnoud877 Před 3 lety +1

    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?

  • @user-mk6ec3de4z
    @user-mk6ec3de4z Před 8 měsíci

    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?

  • @huzaifaaseel
    @huzaifaaseel Před 3 lety

    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

  • @arebelstory
    @arebelstory Před 4 lety +3

    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  Před 4 lety +3

      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.

  • @Raefipourfans
    @Raefipourfans Před 3 lety

    hello sir . iam using wpf core , and i want create appx package with The Windows Application Packaging, i have a .txt file in my application. when i create my appx and install it, i get error, because for the text file. the error is this : your text file is not find !! how should i add my text file to the Windows Application Packaging?

  • @dangerzonee465
    @dangerzonee465 Před 3 lety

    Thank you for video. I was wondering if the automated process and deployment through azure dev ops was out yet?

    • @IAmTimCorey
      @IAmTimCorey  Před 3 lety

      I haven't completed this for MSIX yet. I just did something similar in TimCo with just the self-contained EXE file.

  • @jerryhuang3565
    @jerryhuang3565 Před rokem

    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.

  • @EyeOfTheMind86
    @EyeOfTheMind86 Před 2 lety

    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?

  • @sergiomc
    @sergiomc Před 3 lety

    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 !!

  • @drewrodrigues
    @drewrodrigues Před rokem

    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  Před rokem

      For MSIX? Not really, no. I am planning on doing a video covering creating NuGet packages with CI/CD, though.

  • @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?

  • @erikjansen9149
    @erikjansen9149 Před 4 lety

    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  Před 4 lety

      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.

  • @StudentCompanion
    @StudentCompanion Před 4 lety +1

    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  Před 4 lety +3

      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 Před 4 lety +1

      @@IAmTimCorey ok thanks for the info and great tutorial

    • @chezchezchezchez
      @chezchezchezchez Před 4 lety

      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 Před 4 lety

      Hello?

  • @rodralx
    @rodralx Před 3 lety

    I can't get the windows application packaging project, add my sqlite.db file.

  • @harishkumarp87
    @harishkumarp87 Před 2 lety

    How to uninstall the app from the startup not using control panel to uninstall? Can u help me !!

  • @KurtInTampa
    @KurtInTampa Před 4 lety +1

    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  Před 4 lety +1

      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.

  • @user-hh5ru8jz3j
    @user-hh5ru8jz3j Před 3 lety

    정말 감사합니다!!! 좋아요 댓글 구독할께요 형님!

  • @jeroenj
    @jeroenj Před rokem

    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?

  • @girornsveinsson7970
    @girornsveinsson7970 Před 4 lety

    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  Před 4 lety

      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.

  • @stefangulas
    @stefangulas Před 3 lety

    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  Před 3 lety +1

      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.

  • @bollywoodcastingcouch
    @bollywoodcastingcouch Před 3 lety

    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.

  • @fachverbandgff9909
    @fachverbandgff9909 Před 2 lety

    How can i generate a Desktop Icon during the installation?

  • @MiguelRobinson-oc6tq
    @MiguelRobinson-oc6tq Před 5 měsíci

    Just checking when you are going to do the video to post app to Microsoft store

  • @JellyPies
    @JellyPies Před 4 lety +1

    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  Před 4 lety

      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

  • @AnkitaPadmanabhan
    @AnkitaPadmanabhan Před 3 lety

    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  Před 3 lety

      Noted, added to the suggested topics list, thanks.

  • @DavidBailey-zb7xb
    @DavidBailey-zb7xb Před 4 lety

    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  Před 4 lety +1

      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 Před 4 lety

      @@IAmTimCorey Appreciate that. Also is there a way to allow friends, testers etc to download for free.

  • @patrickdavis102
    @patrickdavis102 Před 3 lety

    Great video as always!! However, I keep having a particular issue. After creating the installer, and running it successfully, running the application itself doesn't work. It will start (as shown in task manager) then closes 2 seconds later. This same thing happens with Advanced Installer, Setup project, and the Windows Application Packaging. The app runs fine in both release and debug through VS. Any ideas?

    • @sebastianluft7441
      @sebastianluft7441 Před 3 lety

      I might be late but I ran into the same issue. When I looked in the Eventmanager I had an error stating that CoreCLR encountered a problem. After some hours of reading I found out that there was a bug with the windows application publishing project that was fixed in the version 16.10.4 of visual studio 2019. If someone encounters that problem, too, try updating your VS Version :)

  • @zdravkolukic2234
    @zdravkolukic2234 Před 3 lety

    Hello,
    Great video but when I finished everything and in other PC want to install this error is occur "Error in parsing the app package"

    • @IAmTimCorey
      @IAmTimCorey  Před 3 lety

      Not sure but this page might help you diagnose it: docs.microsoft.com/en-us/windows/msix/packaging-tool/tool-known-issues

  • @lianlgu00
    @lianlgu00 Před 3 lety

    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?

  • @gopichandarselvaraj5250

    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  Před 4 lety

      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 Před 4 lety

      @@IAmTimCorey Thanks alot. will go through..

  • @bobj8063
    @bobj8063 Před 3 lety

    How does one specify dependencies like SQL server or execute a custom action or EXE during the installation?

    • @IAmTimCorey
      @IAmTimCorey  Před 3 lety

      You don't really do either of those. Now, with SQL you just put the connection string in the appsettings.json file and you are set. It won't deploy SQL but that isn't traditionally how you deploy SQL. Traditionally, SQL is in place and you just point to it with your connection string. If you need additional control over your installation, you would need to create an MSI installer or similar.

  • @wilbertholkema
    @wilbertholkema Před 4 lety

    Hi Tim,
    Did I saw the size of your package for this amazing app was about 125Mb???

    • @IAmTimCorey
      @IAmTimCorey  Před 4 lety

      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.

  • @jamesbest3347
    @jamesbest3347 Před 4 lety

    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  Před 4 lety +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 Před 4 lety +1

      @@IAmTimCorey Tim, thank you so much for your time and effort to help the .NET community. It is greatly appreciated!

    • @martinrj30
      @martinrj30 Před 4 lety

      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.

  • @dhiliph98
    @dhiliph98 Před 4 lety

    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  Před 4 lety +1

      It is possible to do that, yes. You can put that updates folder in a web-accessible location to distribute your updates.

    • @dhiliph98
      @dhiliph98 Před 4 lety

      @@IAmTimCorey Thank You for the clarification Tim.. Have a great day :)

  • @natalyalmassry6775
    @natalyalmassry6775 Před 4 lety

    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  Před 4 lety

      This way updates the application. There isn't a way to uninstall fully and then install a new, fresh version.

    • @natalyalmassry6775
      @natalyalmassry6775 Před 4 lety

      @@IAmTimCorey thank you so much for your help!

  • @S3Kglitches
    @S3Kglitches Před 3 lety

    How do these automatic updates work? You need to download the whole installer and then it uninstalls the old version and does a clean install of the newer version? What if I only edited one dll in my project and my application is 1 GB in size? Does the automatic update download 1 GB?

    • @IAmTimCorey
      @IAmTimCorey  Před 3 lety +1

      It downloads just what it needs to update the application (at the block level) to be as efficient as possible: docs.microsoft.com/en-us/windows/msix/desktop/managing-your-msix-deployment-update

  • @shelleycurrie764
    @shelleycurrie764 Před 3 lety

    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  Před 3 lety

      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.

  • @kpprakash86
    @kpprakash86 Před 3 lety

    Ho to install prerequisite exe in msix package.. Please help to find answer..

  • @FreyClante
    @FreyClante Před 2 lety

    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  Před 2 lety

      Yes, it can. I don't have any demos showing that off, though.

  • @charlieliu9122
    @charlieliu9122 Před 3 lety

    Hi Tim, I am able to publish my application following your instructions. However, when I run it, it looks for the application files (some images which should be loaded dynamically to the apps) in System32 folder. I guess it's because the working directory is System32. Should I copy the application files to System32 or there are other ways to handle this?

    • @IAmTimCorey
      @IAmTimCorey  Před 3 lety

      You need to change your image path to be the location of the app. It isn't in System32, so I'm guessing that the relative path is set incorrectly or you are using the wrong one.

  • @mapplesyrup7661
    @mapplesyrup7661 Před 4 lety

    Hi Tim is MSIX can be deployed through SCCM Machine Level silent installation?

  • @MrFco1
    @MrFco1 Před 3 lety

    How do you include shortcut, for example - installer creates shortcut on users desktop?

    • @IAmTimCorey
      @IAmTimCorey  Před 3 lety

      That's not one of the things a MSIX is designed to do.

  • @andywalter7426
    @andywalter7426 Před 4 lety

    There is one question i have about mxix. If a person chooses .net core 3.1, does the one who installs the app have to have .net core 3.1 already on their computers? Because if so and there is no option to be self contained, then this won't work for .net core apps unless the person already has the .net core on their machines.

    • @IAmTimCorey
      @IAmTimCorey  Před 4 lety +1

      Actually, because MSIX wants to have a clean uninstall, the entire application must be self-contained (not use the GAC or registry, for example). It also then cannot install .NET Core or expect it to already be there. So, it bundles .NET Core with your installation. That means that you can use your MSIX that contains a .NET Core 3.1 project in it on any Windows 10 machine (or any machine Windows 7 or greater if they installed MSIX Core).

  • @christianimfeld7357
    @christianimfeld7357 Před 4 měsíci

    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  Před 4 měsíci +1

      From Microsoft? MSIX is the solution. There are third-party solutions that offer alternatives.

    • @christianimfeld7357
      @christianimfeld7357 Před 4 měsíci

      @@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?

  • @seventhanger9274
    @seventhanger9274 Před 3 lety

    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  Před 3 lety +1

      You need a code signing certificate. If you have a code signing service, you might already have something like that in place.

    • @seventhanger9274
      @seventhanger9274 Před 3 lety

      @@IAmTimCorey Thanks Tim!

  • @44artifacts
    @44artifacts Před 10 měsíci

    thank you!

  • @ibrahimhussain3248
    @ibrahimhussain3248 Před 3 lety

    Is it possible to use sqlcmd with the installer? To execute database publish scripts generated by ssdt projects? Or something similar?

    • @IAmTimCorey
      @IAmTimCorey  Před 3 lety +1

      With the installer? No. Later through your application itself? Yes, that is possible.

  • @jeengl1881
    @jeengl1881 Před 4 lety

    Hi Tim, I followed your tutorial and used MSIX. I put it on my ASP.NET Core server and the installation etc is working fine. However, when I try to run the application it pops up in the taskbar for 1/2 seconds and then dissapears again. Is there anyway I can find out what I am doing wrong or to see what's going wrong? Thanks in advance.

    • @IAmTimCorey
      @IAmTimCorey  Před 4 lety +1

      You can't deploy a web application this way. A web application needs to be installed on a web server. Technically an ASP.NET Core web application is a Console app but it needs to be on a web server to power it. MSIX installers are for desktop applications like WPF, WinForms, and UWP apps.

  • @nwalkeruk
    @nwalkeruk Před 3 lety

    Hi Tim, not sure if i am posting in the correct place but i was wondering when you build a solution consisting of multiple projects for example an exe, a few dlls, and various resources when you build it seems to buld the dll projects and the exe in their respective directories and all the above together in the same folder. Is their any way you can build it such that it puts all of the dlls in a folder called libs or some other name and the other respective resources in there own folders leaving the exe in the root folder?

  • @G4BZZZ_
    @G4BZZZ_ Před rokem

    Is it possible to create custom actions? I am breaking my head to set environment variables with out them

    • @IAmTimCorey
      @IAmTimCorey  Před rokem

      You are pretty limited. You might want to do a full MSI file.

  • @ihershkovitz
    @ihershkovitz Před 3 lety

    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  Před 3 lety

      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 Před 3 lety

      @@IAmTimCorey THANKS! are you familiar with a way to perform something similar that will able to install a WPF app on windows server machine ?

  • @ahmadalbaz6059
    @ahmadalbaz6059 Před 4 lety

    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  Před 4 lety +2

      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 Před 4 lety

      @@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.

  • @djelasrca8091
    @djelasrca8091 Před 3 měsíci

    What if i want to add the notification that new update is available and if user clicks update app to update it? So user opens the app and sees the notification and if he wants to click it updates but if not he can use the old version

    • @IAmTimCorey
      @IAmTimCorey  Před 3 měsíci +1

      That is possible, but I don't have a demo showing off how to do it.

  • @mapplesyrup7661
    @mapplesyrup7661 Před 4 lety

    Hi Tim, i tried to create one but it requires my machine to change the settings to sideloading . Is it necessary ?how about for the user to install the application will they require also to change the settings? Because its kinda complicated because some users don’t have admin privileges to do that and they’re not allowed . Pls help me

    • @IAmTimCorey
      @IAmTimCorey  Před 4 lety +1

      I touched on this in the video. Microsoft is enabling sideloading by default on newer updates of Windows 10. So if your users have an updated copy of Windows 10 (meaning they have automatic updates turned on), they should not have a problem. Some corporate policies, though, disable sideloading. In that case you would need to enable it.

  • @codezoo
    @codezoo Před 3 lety

    Cannot get publish to work in VS2019 16.10. I read somewhere there is a bug which is to be fixed in 16.10.2

  • @heyimsp
    @heyimsp Před rokem

    How do I create a similar installer if I only have Class Library files and no User Interface project?

    • @IAmTimCorey
      @IAmTimCorey  Před rokem +1

      That's a NuGet package. Class libraries don't run on their own. They need a UI. Otherwise, you are just distributing a library for other UIs to run.