Build automation using TFS with InstallShield 2011 - tfs

We have a TFS build which outputs 2 exe's for 2 different solutions. How do I now integrate my build with InstallShield to use these exe's of both the solutions in my installer.
Any points to information would be greatly appreciated.
Thanks much in advance!!

There is no "as is" integration for this in TFS/MsBuild. You must open the msbuild script that TFS uses for each of your solutions and specify a target that will launch installshield.

If you use the integrated into VisualStudio version of InstallShield 2011, the setup can be part of the solution. But you have to install the stand alone version of InstallShield on TFS build machine. This done, InstallShield projects are built automatically by TFS, too.

Related

Using GoogleTestRunner in our TFS Build

We are using the Google Test framework (version 1.7) for unit tests in C++ project (with Visual Studio 2012 and TFS 2012). By using GoogleTestRunner for VS2012 I am able to discover the tests written in Google Test within Visual Studio and run them. So far so good :)
Now I would like to run the tests with my CI build I have set up on our TFS. Therefore I have installed the GoogleTestRunner on my build server for the user that runs our build. If I run the build (and tests) on the build server directly in Visual Studio it works - but when the build is triggered by the TFS build definition I displays the following message in the log:
No test found. Make sure that installed test discoverers & executors,
platform & framework version settings are appropriate and try again.
Any suggestion what I am missing?
Is this working for anybody at all?
Your help is highly appreciated!
Christoph
I have been able to sort it out myself :)
There is a guide showing how to get it running for NUnit. Just follow that guide and adopt it to the GoogleTestRunner:
http://bartwullems.blogspot.de/2012/10/tfs-2012-build-configure-nunit-to-run.html
I extracted the DLLs from the GoogleTestRunner.vsix file with 7zip (I assume any other Zip program would work as well). I checked in all DLLs I found there (as described in the mentioned guide) - don't know if really all DLLs are needed.

What is required for doing Unit Tests on a Build Server?

I am doing unit tests (no additional frameworks other then what comes out of the box with VS 2013).
It all works locally. What do I need to do to get it working on the build server? The build server is a TFS 2013. There are no visual studio installed other then an 2010 version. I have already moved all the 4.5 .net stuff and .targets files from my visual studio to the build server to be able to compile 4.5 dlls and azure projects.
First I had problem with the build template was using AgileRunner or something thats coming with VS2013. I changed that to MSTest. Is this the correct change? Is there any installers for MSTest only without visual studio that I can install on the build server?
My boss prefers if I can avoid installing Vs2013 on the build server.
Just install Visual Studio on the build server; It is a very common practice. The requirement is mentioned in the installation guidelines. You can have visual Studio 2010 and 2013 installed side-by-side if that is desired. There are so many parts of .NET that depend on it.
Install Visual Studio and other software to enable compilation and other capabilities
You must install on the build agent the version of Visual Studio that your team uses on its dev machines. See Installing Visual Studio. You must also install any other software and components that are installed on your dev machines and that are required to build your app.
http://msdn.microsoft.com/en-us/library/bb399135.aspx#software
You're even allowed to use an existing license for the build server, so there are no additional costs involved if you own an MSDN subscription:
Using Visual Studio on the Build Server
If you have one or more
licensed users of Visual Studio Ultimate with MSDN, Visual Studio
Premium with MSDN, or Visual Studio Professional with MSDN, then you
may also install the Visual Studio software as part of Team Foundation
Server 2013 Build Services. This way, you do not need to purchase a
Visual Studio license to cover the running of Visual Studio on the
build server for each person whose actions initiate a build.
http://www.microsoft.com/en-us/download/details.aspx?id=13350
Is there a specific reason for you boss to not want Visual Studio to be installed?
With regards to the Agile Test Runner, it is the improved test runner that shipped with Visual Studio 2012, it's the replacement of the old MsTest runner, and will replace the old MsTest runner for the last few features for which the old runner is still needed. Though the MsTest runner will still work, certain features will not be as easy to use and confugure (like Code Coverage gathering). The Agile test runner is also required for other test framwork extensibility options, including XUnit .NET, NUnit, but also Javascript Unit Test support (using Chutzpah).
Other features that will require Visual Studio to be installed include:
Code Analysis
Code coverage
MsDeploy / WebDeploy
SQL Server Data Tools
and others.
As an alternative to get just the test runners, you could attempt to install the TFS Test Controller and Agent to the server (you don't need to configure them), the Test Agent will install a number of testing related features without actually installing the Visual Studio Shell.
By not installing Visual Studio on your build server, you are violating the license agreement with Microsoft. Although Microsoft themselves might build without installing Visual Studio on their build servers internally, this scenario is definitely not supported officially.
Building without installing Visual Studio is asking for undefined behavior and jeopardizing the integrity of your builds. I would suggest to stay clear from these attempts until Microsoft officially supports this scenario.
Microsoft strongly recommended not to build without installing Visual Studio when we asked as Gold Partner 2 years back as it was not supported in any way officially and there is no license model covering the scenario.

Azure Website missing msshrtmi when built on and deployed from TFS

I'm trying to deploy to Azure Websites (Preview) from TFS (Preview). The build works and the website is deployed but when my code tries to access the Azure RoleEnvironment the website throws the following exception:
Could not load file or assembly 'msshrtmi, Version=1.7.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its
dependencies. The system cannot find the file specified.
I've tried all solutions proposed in the following thread with no luck. I think it has do to with the TFS.
I have tested this:
Reinstalled Azure SDK and Tools
Removed all PlatformTarget from
projectfiles
Wrote post-build event to delete msshrtmi.dll
Targeted all assemblies to x64 (-> failed all unit tests
on TFS, it seems to be x86, even if allowing x64 in .testsettings)
Could not load file or assembly 'msshrtmi' or one of its dependencies (Azure Table Storage Access)
I've ran out of ideas on how to troubleshoot this issue? Does anyone have any suggestions?
I've encountered a similar issue in earlier versions of the SDK when doing some builds. My solution wasn't entirely intuitive. If I go through each of my build configurations and do a "Clean Solution" then go back to the build configuration I actually care about and do a build this issue goes away.
I have no explanation as to why this works, but after hours pulling my hair out, I was just happy to have a solution.
After 7 hours of mindblowing trial and error I finally fixed this. The problem lay with having Microsoft Windows Azure tools for June 2012 together with Microsoft Windows Azure tools for November 2011.
The steps I followed:
Remove Microsoft Windows Azure tools For Visual Studio 2012 RC - June 2012
Install Microsoft Windows Azure tools for Visual Studio 2010 - June 2012 Edition
Remove Microsoft Windows Azure tools for Visual Studio 2010 - November 2011 Edition
Now re-open the project that was trying to be deployed
Visual Studio will try to convert all the November 2011 binaries to the June 2012 edition
Once this is successfully done, re-check all the Microsoft.WindowsAzure references to see if they are version 1.7.0.0
Publish to Azure!
Hope it helps someone, I'm so tired I'm not coding for the next 24 hours.
I had the same problem where it was always looking for the 32 bit version of msshrtmi in 64bit app causing an error like this. I never found out why but I created build task in my project that would delete the offending 32bit file from the bin so 64bit is found in GAC.

Specflow 1.7.0 - integration with Visual Studio Team System 2008

Does anyone use Specflow 1.7.0 with Visual Studio Team System 2008? There are no Specflow templates available in “Add New Item” window after installation.
Installed previous version 1.6.1 and this time integration works fine. Any idea?
I have the same problem.
I was thinking it was because of a bad update of the msi version... but no.
Now : I need to create manually a .feature file
edit :
I have installed cuke4vs
https://github.com/henritersteeg/cuke4vs/downloads
now it's possible to to add features with "Add New Item"
(and in addition the feature file is colored :) )
Most probably found the bug.
Install the next nightly build from build.specflow.org, I hope it will work then.

Can assembly version been automatically updated with each TFS 2010 Build?

I'm using Visual Studio 2010 and TFS 2010. Is there a way that dll version be automatically incremented with each TFS build?
Thanks
I have a blog post on how to version your assemblies in TFS Build 2010:
How to Create a Custom Workflow Activity for TFS Build 2010 RTM
Try TfsVersioning build definition. It can be alse extended with Nugetter to create a NuGet package and upload it to a repository.
You can use Version task from msbuildtasks
Here's blog post by Jeremy Jameson with step-by-step instructions on how to use it.

Resources