Jenkins for C# Projects and Artefacts - c

after my last question about artefacts in an C# project, i´am using Nuget for my DLL´s, but with no "Snapshot" like system i use in Maven.
Are there any projects or tutorials about building an Build Pipeline with Jenkins as the Buildsystem and deploying Artefacts to an Artefact Server?
In our Java projects, i use Jenkins and Sonatype Nexus. Now i think i need Jenkins with msbuild and some kind of nuget server (atm it is just an file storage). Maybe, someone has done it already. I dont want to host an extra Team Foundation Server if i can avoid it.
Regards

Please go through this Stackoverflow thread setting-up-continuous-integration-and-continuous-deployment-for-microsoft-applications.
They also have the Java stack established with Jenkins and Nexus and wants to reuse the same tools to setup the CI/CD process for their Microsoft.Net applications.

Related

How to create an MSIX package for WinForms app?

I'm trying to move to MSIX to install our application, which is currently deployed to our customers via a ClickOnce installation which requires updating on startup, if there is an update. Its a .Net Framework (4.7.2) WinForms app. I'm a bit lost on how to begin; the documentation seems to start from an existing installer package (including ClickOnce), but I'd like to generate this without an intermediate step on our build server as we want to phase out the ClickOnce installation completely once we've proven MSIX will work for us.
I found the Windows Application Packaging Project, but it seems targeted to UWP app, which ours is not, and we have the need to install on Windows 7 SP1 or higher.
What tool would I use to create an MSIX package non-interactively? Would the WAPP play any role in the process?
Here is a similar thread on MSFT's MSIX community. It's talking about VS 2017, but most of the info applies to 2019 too.
https://techcommunity.microsoft.com/t5/msix-packaging-and-tools/build-msix-from-vs-2017-pro-v-15-9-4/m-p/952246
An extract from the above link:
You should be able to use the windows application packaging project to package MSIX. Please see: https://learn.microsoft.com/en-us/windows/msix/desktop/desktop-to-uwp-packaging-dot-net
Alternatively, you could package your MSIX by hand using: https://learn.microsoft.com/en-us/windows/msix/desktop/desktop-to-uwp-manual-conversion
Additionally, if you want to use the MSIX Packaging Tool, you might be able to leverage our pre-made VM: https://learn.microsoft.com/en-us/windows/msix/packaging-tool/quick-create-vm even if your enterprise is still on an older release of windows.
You can also try partner solutions, like Advanced Installer's VS extension which can build an MSIX and MSI from the same project, if you need to target different users. The extension also supports debugging apps inside the msix container.
Disclaimer: I work on the team building Advanced Installer.

CI/CD WPF setup file using Azure Pipelines

I have successfully created a Repo on Azure Devops and a Pipeline which triggers a release every time I push to the master branch. The result of the release is an .exe file that I can download from the Artifacts explorer. If I download the release and open it, the WPF app simply runs (no install required). I'm trying to wrap my head around how this whole CI/CD process would work but I just cannot find any good examples that could help me understand the deployment process(at least for WPF apps).
What I would usually do is build a WPF App, once I'm done, I add a new project to the solution (Visual Studio Installer - Setup Project) and deliver the .msi installer to the end user (for updates I send them the latest version to install).
How can I make this process a lot more smoother using CI/CD in Azure Devops? How do I generate an actual installer? Do I use some logic in the app itself to check for the latest build in Azure? Can someone please lay out some simple steps or some good resources?
You should be able to use a task like this: https://marketplace.visualstudio.com/items?itemName=dutchworkz.BuildInstaller to use the VS Installer project you have traditionally used.
This task wraps the calls to devenv that are needed to drive VS Installer to create its MSI package as it doesn't use the usual MSBuild engine to do this.
Other tools do a similar job, for example you could drive WIX or a similar tool to create the MSI package however if you are familiar with VS Installer Projects you may want to stick to this.

Github SQL Server installation

I am new to github I understand it is aversion control repository for collaborative software development. I wish to however explore that can we also install software such as SQL Server or java in github repository so that it provides a complete platform. Actually I have developed a software tool that uses HTML5 D3 and SQL Server I want it to upload to a Github repository so that other can see a live demo. I'm not sure how to do this - please comment
Github will only host the source code itself and static html pages. Nothing is actually executed there. Basically a folder on a computer. Passive. You would need to use a cloud platform like gcp or aws to do what you are describing.

How to deploy WPF Applications to client machines without a server?

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

Including winforms installer in UppercuT code_drop

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.

Resources