I've got an OSS WPF application and I want to ship a self-updating installer for it. I know that GitHub has this raw.github.com which serves just files so my question is, if I make a directory with a ClickOnce installer, will the ClickOnce self-update mechanism be able to pull updated files from GitHub?
Related
I am using clickonce for deploying WPF application.
But when user installs using exe file which I published, it gets installed inside some random directory on user's machine.
Is there way to control path of directory where published application will get installed on user machine?
Thanks,
Pankaj
ClickOnce's purpose is to install the app into a sandboxed location in the user's profile.
If you need to control where your application is installed, you need to use a different packaging and installation mechanism like Microsoft VisualStudio 2015 Installer Projects or InstallShield LE.
I've created a wpf application. Now I need to make an application to download it from a web site to various client machines with no server software. What are the essential requirements that need to be installed from the web to the client in order for the application to work? I am very new to this and am learning as i go along
As stated by the others you may publish your application using clickonce. An alternative approuch is to use a third party installer like wise(yee old .msi is removed from newer visual studios). MS wants you to use clickonce for deployment it may be done manually using mage, through MageUI or visual studio directly. I only use mage.exe for deployment of WPF and XBAP applications, it's nice if you have a buildserver set up and all. Just make some scripts for the deployment that you may reuse, once deployed check your manifest file to see what's included and not.
General information about clickonce.
Mage.exe located in your windows sdk for manually deployment
MageUI, useless for any live production envirnoment...
Hope it helps you some, I know this can be a pain.
Cheers,
Stian
I have an open source WPF application hosted on GitHub: https://github.com/tomhunter-gh/SourceLog
What I was hoping to do was add ClickOnce deployment and host the ClickOnce install on AppHarbor so that users are automatically upgraded when I push new commits to GitHub. What I'm looking for is an auto update feature similar to the GitHub Windows client, and I'm also hoping to find somewhere to host the ClickOnce install bits for free.
I have a number of questions:
How does AppHarbor actually work? As far as I can tell it expects a Visual Studio solution containing a single web application project, which it then builds and "deploys". What specifically does it look for to run, what assumptions is it making? What happens when you have non web projects, or your solution isn't in the root directory for example?
Is there any way to customise the build and deployment process, for example with custom MSBuild scripts?
How would I ensure the WPF project is "published" so that the ClickOnce bits are generated?
Is there any way to get a build number from the AppHarbor build process? E.g. a four part assembly version 1.2.3.4 and write that to the generated binaries/config?
Is there any way for AppHarbor to push the ClickOnce bits back to GitHub after a successful build, so that I could instead host the ClickOnce install on GitHub?
Should I be taking a completely different approach?
It turns out this is entirely possible and the steps are as follows:
AppHarbor
Ensure you are using a Web Worker process.
Add an application in AppHarbor and connect it to your GitHub project.
Solution
Add a web application project to the solution
Copy the v7.0A Windows SDK folder (C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A) to a folder alongside the solution
WPF Project
Set the DefaultTargets attribute of the Project element to Publish.
Set the PublishDir property to $(OutDir)\_PublishedWebsites\{ClickOnceHostWeb}
Set the UpdateUrl property to http://yourapp.apphb.com/.
Set the following additional properties:
<GenerateBootstrapperSdkPath>$(MSBuildProjectDirectory)\..\Lib\Microsoft SDKs\Windows\v7.0A\Bootstrapper</GenerateBootstrapperSdkPath>
<SdkToolsPath>$(MSBuildProjectDirectory)\..\Lib\Microsoft SDKs\Windows\v7.0A\Bin</SdkToolsPath>
Further details are available in my SourceLog blog post, and a full example is demonstrated by the the SourceLog project on GitHub.
Does anyone know how to specifically include a winforms setup project to be included in the code_drop folder generated when running UppercuTs zip.bat? With the default settings my web applications and WCF services are included, as are the dll's for the solutions core, but not my winforms application/installer
I was just playing around with UppercuT last night, and I ran into the same question.
One tip I found for putting console apps and windows services into the code_drop is to use this Nuget package in your console/windows service projects:
http://nuget.org/packages/publishedapplications
See this for more info:
http://devlicio.us/blogs/rob_reynolds/archive/2011/03/22/published-applications-aka-publishedapplications.aspx
Using this will cause your console/windows service projects to be "published" similary to how a web app is published in the code_drop. However, this isn't what you're asking for, just wanted to point it out if its useful. This also doesn't work for installers.
If your installers are using the default Visual Studio setup projects (.vdproj projects), I haven't tried that, so I can't help there. I do know that MSBuild refuses to build those types of projects (not sure why...), so you might be better off using WiX or another installer technology. You can do an automated build on a vdproj if you run the build by calling devenv.exe directly from the command line, but you can't build those with MSBuild. I did try adding a WiX setup project to my sln, and UppercuT will build the Wix setup project and drop the .msi in the "build_output" folder, but it doesn't copy it over to the code_drop. My thought would be to add a custom post build step to just copy that file over from build_output to code_drop. I haven't had a chance to figure out the logic in the build scripts to see how it chooses which files to copy from build_output to code_drop. If I figure anything out, I'll update this answer.
Is it possible to install a WPF4 Net 4.0 application using a MSI Installer (Advanced Installer) and still leverage ClickOnce's application updates? I'm not talking XBAP but a full desktop app.
I'm asking this question because I've read conflicting statements on the web and here on SO.
Can you wrap that in an MSI and deploy it as a prerequisite to the ClickOnce application?
You can't install an application with an MSI and then use ClickOnce to update it -- it must be installed as a ClickOnce app to start with.
You might be able to zip up the ClickOnce deployment and then unzip it on the customer size and install it from the local folder. If the Installation URL in the manifest is correct, I think that will work. I can't advise further on that, since my expertise is only in ClickOnce deployment.