Answered by:
How to create an installer that updates from a website?

Question
-
First of all, I am a structural engineer, not a real software developer. So, please don't kill me.
I'm developing a wpf software for my field. I've created a website. My software uses a couple of 3rd party components.
(1) How do I create an installer that includes the 3rd party components all in a single installer executable? Because when I publish I get a bunch of files, including the 3rd party components. How do I publish in a way that I only get 1 installer file?
(2) I found
http://autoupdaterdotnet.codeplex.com/ but I'm having a hard time figuring out how to use it. Basically, I want to be able to upload an update to my website and my program would automatically update the next time the user runs the application. Please help?
Monday, September 7, 2015 1:39 PM
Answers
-
If you just put an msi on your website then someone could download it and install your app.
There is a bit of a problem with your requirement to automatically update when new versions are available.
The approach you want to look at is called ClickOnce.
You build an installer, put it on your web site and give people the url.
That's the short version.
I suggest you do some research - there's a bunch of stuff out there on the web about clickonce:
http://www.c-sharpcorner.com/UploadFile/0f100d/deploying-a-wpf-application-using-click-once-deployment-tech/
Note
You'll see on ms sites stuff saying that clickonce is outdated.
You could now distribute a wpf app via the windows store.
I wouldn't recommend that approach to you though.
- Proposed as answer by Manuel MeyerMVP Monday, September 7, 2015 3:15 PM
- Marked as answer by Xavier Xie-MSFT Tuesday, September 15, 2015 6:45 AM
Monday, September 7, 2015 2:24 PM -
>>How do I create an installer that includes the 3rd party components all in a single installer executable?
You could create a Visual Studio Installer project by downloading the Visual Studio Installer Projects Extension. Please refer to the Visual Studio blog for more information about this: http://blogs.msdn.com/b/visualstudio/archive/2013/08/15/what-s-new-in-visual-studio-2013-and-installshield-limited-edition.aspx. There is a Visual Studio forum if you have any further questions about how to for example install extensions: https://social.msdn.microsoft.com/Forums/vstudio/en-US/home?forum=visualstudiogeneral
You could also use some third-party installer such as this one: http://www.advancedinstaller.com/. Note that you should not ask any question about third-party software in these forums though as they are intended for Microsoft's products and technologies only.
>>I found http://autoupdaterdotnet.codeplex.com/ but I'm having a hard time figuring out how to use it.
If you have any issues regarding a third-party product you should ask the manufacturer directly or start a new thread in their community: http://autoupdaterdotnet.codeplex.com/workitem/list/basic
>>Basically, I want to be able to upload an update to my website and my program would automatically update the next time the user runs the application.
ClickOnce is a deployment technology that enables you to create self-updating Windows-based applications that can be installed and run with minimal user interaction. Please refer to the following page on MSDN for more information: https://msdn.microsoft.com/en-us/library/142dbbz4(v=vs.90).aspx
It is easy to publish a ClickOnce application from Visual Studio. Just right-click on your WPF application project in the Solution Explorer, choose "Publish" and follow the wizard. Please refer to the following page for more information: https://msdn.microsoft.com/en-us/library/31kztyey(v=vs.90).aspx
Hope that helps.Please remember to close your threads by marking helpful posts as answer and then start a new thread if you have a new question. Please don't ask several questions in the same thread.
- Proposed as answer by Xavier Xie-MSFT Tuesday, September 8, 2015 4:43 AM
- Marked as answer by Xavier Xie-MSFT Tuesday, September 15, 2015 6:45 AM
Monday, September 7, 2015 7:29 PM
All replies
-
If you just put an msi on your website then someone could download it and install your app.
There is a bit of a problem with your requirement to automatically update when new versions are available.
The approach you want to look at is called ClickOnce.
You build an installer, put it on your web site and give people the url.
That's the short version.
I suggest you do some research - there's a bunch of stuff out there on the web about clickonce:
http://www.c-sharpcorner.com/UploadFile/0f100d/deploying-a-wpf-application-using-click-once-deployment-tech/
Note
You'll see on ms sites stuff saying that clickonce is outdated.
You could now distribute a wpf app via the windows store.
I wouldn't recommend that approach to you though.
- Proposed as answer by Manuel MeyerMVP Monday, September 7, 2015 3:15 PM
- Marked as answer by Xavier Xie-MSFT Tuesday, September 15, 2015 6:45 AM
Monday, September 7, 2015 2:24 PM -
>>How do I create an installer that includes the 3rd party components all in a single installer executable?
You could create a Visual Studio Installer project by downloading the Visual Studio Installer Projects Extension. Please refer to the Visual Studio blog for more information about this: http://blogs.msdn.com/b/visualstudio/archive/2013/08/15/what-s-new-in-visual-studio-2013-and-installshield-limited-edition.aspx. There is a Visual Studio forum if you have any further questions about how to for example install extensions: https://social.msdn.microsoft.com/Forums/vstudio/en-US/home?forum=visualstudiogeneral
You could also use some third-party installer such as this one: http://www.advancedinstaller.com/. Note that you should not ask any question about third-party software in these forums though as they are intended for Microsoft's products and technologies only.
>>I found http://autoupdaterdotnet.codeplex.com/ but I'm having a hard time figuring out how to use it.
If you have any issues regarding a third-party product you should ask the manufacturer directly or start a new thread in their community: http://autoupdaterdotnet.codeplex.com/workitem/list/basic
>>Basically, I want to be able to upload an update to my website and my program would automatically update the next time the user runs the application.
ClickOnce is a deployment technology that enables you to create self-updating Windows-based applications that can be installed and run with minimal user interaction. Please refer to the following page on MSDN for more information: https://msdn.microsoft.com/en-us/library/142dbbz4(v=vs.90).aspx
It is easy to publish a ClickOnce application from Visual Studio. Just right-click on your WPF application project in the Solution Explorer, choose "Publish" and follow the wizard. Please refer to the following page for more information: https://msdn.microsoft.com/en-us/library/31kztyey(v=vs.90).aspx
Hope that helps.Please remember to close your threads by marking helpful posts as answer and then start a new thread if you have a new question. Please don't ask several questions in the same thread.
- Proposed as answer by Xavier Xie-MSFT Tuesday, September 8, 2015 4:43 AM
- Marked as answer by Xavier Xie-MSFT Tuesday, September 15, 2015 6:45 AM
Monday, September 7, 2015 7:29 PM -
Thank you for your replies.
One more question. How do I make my installer trusted? I tried to install it on a test machine and it screamed bloody murder.
Tuesday, September 8, 2015 3:02 AM -
This isn't really the sort of thing that non developers do, by the way.
But:
https://msdn.microsoft.com/en-us/library/ms996418.aspx?f=255&MSPPError=-2147217396
You buy certificates from sources like godaddy and they last a year.
You then have to renew the certificate.
Just installing a certificate you get from one of those places is not simple.
The last time I worked with a certificate, the architect took 4 attempts before it was working.
I think he bought the wrong type initially.
Tuesday, September 8, 2015 7:38 AM -
But I have a developer license with MS. When I published the wpf project to exe file and the components, it was working fine. My colleagues were able to install just fine without the bells and whistles.
I can't find anywhere in the installer part of the VS project to sign. Please look at the following screenshots.
This one is my regular project.
Now, here is the properties for the installer part.
As you can see, there is no where in the 2nd screenshot for me to sign.
Tuesday, September 8, 2015 2:31 PM -
See
https://msdn.microsoft.com/en-us/library/che5h906.aspx
Tuesday, September 8, 2015 3:44 PM -
See
https://msdn.microsoft.com/en-us/library/che5h906.aspx
I'm very very very very sorry. I'm just not that bright. But I've already done all of that. When I publish to generate exe installation file with a folder containing the components, it installs just fine. It's when I build an msi file that's when the installation process says the source is not trusted. Please look at the screenshots I inserted above. In the 2nd screenshot, there is no option for me to sign.Wednesday, September 9, 2015 12:37 AM -
Maybe it's an idea to reconsider your automatically update on new version requirement.
Publishing an msi is pretty easy.
You can just email users when there's a new version.
Wednesday, September 9, 2015 8:36 AM -
Wednesday, September 9, 2015 8:51 AM
-
See
https://msdn.microsoft.com/en-us/library/che5h906.aspx
I'm very very very very sorry. I'm just not that bright. But I've already done all of that. When I publish to generate exe installation file with a folder containing the components, it installs just fine. It's when I build an msi file that's when the installation process says the source is not trusted. Please look at the screenshots I inserted above. In the 2nd screenshot, there is no option for me to sign.There's a difference between publishing a project and simply copying that folder onto another system then launching the app from the executable in the folder and using an installer creator to create an installer for installing a project.
A folder containing components is copied to a location but not installed if I'm not mistaken. Anyway the app will not be trusted security wise. Anti-Virus and Anti-Malware apps can mistake it for a virus. Which is why installers provide certificates for use such that the OS's security doesn't have issues with the app and therefore neither should Anti-Virus or Anti-Malware.
La vida loca
Wednesday, September 9, 2015 8:58 AM -
See
https://msdn.microsoft.com/en-us/library/che5h906.aspx
I'm very very very very sorry. I'm just not that bright. But I've already done all of that. When I publish to generate exe installation file with a folder containing the components, it installs just fine. It's when I build an msi file that's when the installation process says the source is not trusted. Please look at the screenshots I inserted above. In the 2nd screenshot, there is no option for me to sign.There's a difference between publishing a project and simply copying that folder onto another system then launching the app from the executable in the folder and using an installer creator to create an installer for installing a project.
A folder containing components is copied to a location but not installed if I'm not mistaken. Anyway the app will not be trusted security wise. Anti-Virus and Anti-Malware apps can mistake it for a virus. Which is why installers provide certificates for use such that the OS's security doesn't have issues with the app and therefore neither should Anti-Virus or Anti-Malware.
La vida loca
Ok, so I figured out that a self-cert will not be trusted. Just bought a cert from comodo last night. They're validating me right now.Wednesday, September 9, 2015 1:07 PM -
Today, I ran a serious of tests and discovered a problem. Say I have a test computer A. I've installed msi version 1 on computer A. Then in the project I make a change. Then I create another msi version 2. Then I install this msi in computer A. It would show that it installs. But when I run the app, it still runs version 1.
The only way to make it run version 2 is if I go into add/remove program in the control panel and uninstall version 1 and then install version 2.
How do I make it so msi of version 2 will update the app while version 1 is installed?
I'm making a desktop app for a bunch of grumpy old men who (1) hate computers, (2) think the monitor is the computer, and (3) are stuck in a time warp where dinosaurs still roam the earth. Unfortunately, they are the ones running my multi billion dollar company. I can't make them uninstall and reinstall every time I give them an update.
- Edited by RandyPete Wednesday, September 9, 2015 10:44 PM
Wednesday, September 9, 2015 10:44 PM -
I'm baffled by something. I can auto increment the assembly version by putting in 1.0.*.
But why in the world can't I auto increment the installer version? Why do I have to manually do it every time? I've been searching all over the internet and have not found anything that helps.
Thursday, September 10, 2015 2:02 AM -
Today, I ran a serious of tests and discovered a problem. Say I have a test computer A. I've installed msi version 1 on computer A. Then in the project I make a change. Then I create another msi version 2. Then I install this msi in computer A. It would show that it installs. But when I run the app, it still runs version 1.
The only way to make it run version 2 is if I go into add/remove program in the control panel and uninstall version 1 and then install version 2.
How do I make it so msi of version 2 will update the app while version 1 is installed?
I'm making a desktop app for a bunch of grumpy old men who (1) hate computers, (2) think the monitor is the computer, and (3) are stuck in a time warp where dinosaurs still roam the earth. Unfortunately, they are the ones running my multi billion dollar company. I can't make them uninstall and reinstall every time I give them an update.
Thursday, September 10, 2015 7:47 AM