Continous integration of a Windows application using Jenkins - vb.net

I am having a Windows application which was created on VB.Net and Visual Studio 2008, The application is somewhat big and is around 10 years old. The repository we are using is TFS. I am having a task to create an automatic build for this Windows application and I choose the Jenkins CI for it.
My plan is to build the project solution using MS Build plugin and then publish it and deploy the solution to IIS path.
I have given the below MS Build query to build using Jenkins and get the solution code from TFS and the output was successful:
/t:AppProcSolution /p:Configuration=Release /maxcpucount
But I need publish the same AppProcSolution. Could I do it by passing any other parameters to the above script or should I need to use MS deploy etc. I am totally new to automatic integration. Is it possible for me get the published solution to a particular folder? Almost all the .Net integration using Jenkins tutorial available on the Internet is for deployment to GitHub etc. So if someone has any guidelines to help please provide me a solution.

MSDeploy is good for server application deployments like web applications/sites, SQL server databases or Windows Services.
When you say "Windows application" I assume you mean a WinForm or desktop client application. The best tool for this, in my opinion, is ClickOnce:
https://msdn.microsoft.com/en-us/library/142dbbz4(v=vs.90).aspx
You could also use a Setup project in VS:
https://msdn.microsoft.com/en-us/library/ms235317(v=vs.90).aspx

Related

Build and Test the ASP.NET Website and Libraries without having Visual Studio

I am a newbie in the DevOps world, and I would like to set up a CI server.
I have a Continuous Integration pipeline setup (with GO-CD pipelines) on my laptop. I am trying to move it to the server.
On the server, I do not have Visual Studio Tools so the existing MSBuild fails. Is there any way I can run the same pipeline on the server.
I have 2 projects in my MSBuild file.
Asp.Net website
MS Test Project
Regards,
Kritul
Build ASP.NET code on the Build Server without installing VS
Build ASP.NET 4.5 without Visual Studio on Build Server
Using MS Tests on Build Server without installing VS
Can I use mstest.exe without installing Visual Studio?

How do I build an Adobe AIR application using Visual Studio Team Services

I have a client with an application that is written in MXML and ActionScript 3 and is deployed as a desktop app using Adobe AIR. The client would like me to implement automated builds and releases for this application and currently uses Visual Studio Team Services as their build and release management platform. My question is, what is the best way to use Visual Studio Team Services (VSTS) to build an Adobe AIR application?
I am familiar with the amxmlc tool for building AIR applications using the command line but this relies on Java and I cannot find any documentation on how to run a Java-based tool from within VSTS. Any assistance on this matter would be appreciated.
I understand that Adobe AIR is an older technology but for reasons that are beyond the scope of this question the client does not want to rewrite the application in newer technology at this time.
In addition, alternative build and deployment platforms are out of the question. I have experience doing something similar using Jenkins however the client would like to stick with VSTS.
Please let me know if you require any additional information to help answer my question. Thanks in advance.
You can setup a private build agent on a machine (can be on your local machine) that have requirement software installed (e.g. JDK, JRE). Deploy an agent on Windows
You can build the AIR application via amxmlc tool, so you can add Command Line task to call amxmlc tool to build your project.

TFS Test Agent Configuration Tool for Selenium UI tests

My team has several Selenium Unit Tests that we run locally. Selenium opens a browser and runs through our application. This works fine locally. Now, management wants to run the tests, on demand, via TFS. Should be easy, right? WRONG!
I am having trouble setting up our TFS 2015 server to run these Selenium UI tests.
Everything I read tells me to run the "Test Agent for Visual Studio 2015" tool. Problem is, the tool does not exist on my machine and I cannot understand why. I have tried many things, like installing the MS Visual Studio "Agents", with no luck.
When I try to open the freshly installed "Agents" I get a message saying: "Test Agent for Visual Studio 2015 has no configuration tool".
So the VS.NET "Agents" panel never opens. Seems bizarre to me that I installed something that needs further configuration, with no way to perform that configuration.
From further reading, I think I need to provision a group machine in the TFS web administration page, but am totally unsure if that's required for my situation, as I cannot even get past the basics here.
I see other people have had this problem, with very little response or help from Microsoft. I am a little baffled at why this seems so very difficult to do on a TFS server? It runs locally just fine, like a breeze. But TFS? It's like a giant puzzle.
Once this is working, I need to configure the test agent to run in "interactive mode" so it can run the browser but I cannot even begin to figure that out yet. Where do you set it to "run interactive" because I dont see any of those options. Am I missing TFS installation components? Do I have the wrong Visual Studio? Do I need the Ultimate edition of Visual Studio to be able to perform UI tests with the browser? We have the Professional edition.
Here is someone with the same problem:
https://connect.microsoft.com/VisualStudio/feedback/details/1712725/test-agent-for-visual-studio-2015-has-no-configuration-tool
Does anyone have any ideas or instructions on how to setup the "Test Agent" I need to run my team's existing Selenium UI tests in TFS2015? Seems very difficult when it should not be.
In the link you provided, Allen has explained that "There is no configuration UI with the test agent anymore. This is because we have simplified the existing remote testing scenario by doing the install and configuration for you when running via the build pipeline."
TFS 2015 Update2 now have a "Run Functional Test" task that you can use to run tests (included Coded UI Tests) against machine groups. So, first you have to upgrade your TFS 2015 to TFS 2015 Update2 if you haven't.
The tasks you need for test scenarios using Visual Studio 2015 and Visual Studio Team Services (VSTS) or Team Foundation Server (TFS) 2015:
Create environments from physical or virtual machines that you've already set up.
Set up your build to run your app and tests in the environments that you created.
After your build finishes, review your test results to start resolving problems that you found.
So, your build process template should look like the screenshot below. You need to specify every task to meet the requirement of your project. All TFS tasks can be found at this website, you can get more information for each task from it. Coded UI or Selenium tests that are running on full fidelity browsers would need Interactive Process checked.:

Getting Auto Deploy to work with MSBuild on a build server

Please pardon a newbie's question about MS TFS and Visual Studio 2012, I hope I'm using the correct vocabulary.
Our shop has recently moved to MS TFS and Visual Studio 2012 to build internal web services for integration. Currently we have a TFS 2010 Server running on Server2008R2 and a Build server on a Windows 7 box, our dev application server is also running Server2008R2. I have been given the job of getting a nightly build and deployment running. I have the build definition working but the deployment portion is not functioning. I have installed Web Deploy on both the dev application server and the build server as per these articles:
http://www.kevingao.net/version-control/how-to-auto-deploy-web-application-with-tfs-build-server.html
and
http://www.iis.net/learn/install/installing-publishing-technologies/installing-and-configuring-web-deploy
We have configured an user, web_deploy_dev in active director and that user is a local admin on the dev app server.
The parameters added to the build definition are:
/p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish
/p:MSDeployServiceURL="https://PA-APPSRV1-DEV:8172/msdeploy.axd" /* double quotes not in original code */
/p:DeployIISAppPath="DW/DWServices" /* E:\Webroot\DW\DWServices */
/p:CreatePackageOnPublish=True
/p:MsDeployPublishMethod=WMSVC
/p:AllowUntrustedCertificate=True
/p:UserName=migp\web_deploy_dev
/p:Password=******
I suspect that MSBUILD is not even calling msdeploy.exe as I see no errors in the windows event and application logs, but I do not know all the places to look. I can use a web browser and connect to the service on the dev app server as the web_deploy_dev user from the build server, I receive a web page not found error after inputting user name and PW, but I assume that is to be expected.
I am at a loss as to where to look next, I've tried searching the web but nothing I try seems to work.
Thank you in advance for your help and input.
Roy
It sounds like you are experiencing a problem where your build completes and claims success, but you aren't getting any error and nothing is actually deployed. When I've experienced this with my TeamCity build server, the problem was that MSBuild was not set up on the machine that would do the building and deploying. These are my steps to resolve the problem I think you might be having:
Make sure that at least Visual Studio Express is installed. you can tell if a full enough version of Visual Studio is installed by navigating to the
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\ directory. If you see folders like 10.0, 11.0, or '12.0', look inside them and verify that there is a Microsoft.WebApplications.targets file. Note the versions that pass that check.
In your Build Configuration, add a /p:VisualStudioVersion=12.0 or whatever version of Visual Studio is appropriate.
Let me know if this gets you anywhere or not. I'm really curious to hear if you are finding any errors or logs anywhere. Basically, in my experience using Web Deploy and MSBuild with TeamCity, if the machine that is building and deploying doesn't have the MSBuild installed with the Microsoft.WebApplication.targets file, it silently fails.

Visual Studio 2010 Database Project Installer / Install script

I have been using a database project in visual studio 2010 to create a database. Visual Studio makes this process really easy to deploy the database and deploy updates. The issue I have is how I can get visual studio to create a script that will build the database that I can use on a QA or production system.
I thought that building the project would create a SQL file that did this but this does not seem to be true. Can someone please advise on how I can do this or what simple step I am clearly missing.
As strange as it may sound, Visual Studio does not create a SQL file to deploy your database when you perform a Build.
Instead, this occurs at Deploy time. The reason behind this lies in the way that Visual Studio makes changes to the database that you're deploying to: in order to change your database, it must first compare the project model (as defined in the files contained within the .dbproj) with that of the existing database schema to determine what changes you have made since the database was last deployed.
You then have the choice of manually executing the SQL script produced using the SQLCMD command-line utility (or through SSMS in SQLCMD mode), or alternately you can configure your Visual Studio Database Project to execute the script if you specify the following Deploy Action in project settings:
Generate a deploy script (.sql) and deploy to the database
Note that you will need to provide a connection string in project settings so VS knows where to deploy to.
When you get to the stage where you want to deploy to a QA or PROD environment, you have a couple of options:
Deploy directly within Visual Studio. In addition to the standard Debug and Release configurations that you get when you first create your Database Project, you can also create your own configurations which you could use to deploy to your QA and PROD environments (i.e. potentially with a different connection string/target database name).
Deploy from a Build Server. Install Visual Studio on a separate machine and call MsBuild against your .dbproj/.sln file with the Build and Deploy targets specified along with the appropriate connection properties.
Doug Rathbone has written a great blog post on subject if you want to learn more:
http://www.diaryofaninja.com/blog/2011/06/23/compare-amp-update-database-schemas-right-within-your-ide--part-2-automation-with-teamcity