Using TFS 2015 Build to build projects in TFS 2013 - tfs

We currently use TFS 2013.
I'd like to do a POC where I can create some build definitions in TFS 2015 where it would get the source from our existing TFS 2013 server. Once the boss sees how much easier it is to manage our builds from TFS 2015, I'm sure he'll give us the go-ahead with upgrading the existing TFS 2013 to TFS 2015.
Is this even possible?

You could write a PowerShell script or some batch files to leverage tf.exe in order to map a workspace / clone a repo (depending on whether you're using TFVC or Git) as part of a build. Or just put the tip of your source code into the "demo" environment and build from there. The latter option is going to be much faster.

Related

Use XAML-Builds with TFS 2018 Update 2

We installed the newest TFS Server (TFS 2018 Update 2) which should run xaml builds.
After the update, we started our agent, but our xaml-controller is still offline and I don't know how I start this again..
Any ideas what we can do?
Yes, you can now upgrade to TFS 2018 Update 2 and continue to connect
your XAML controllers and run XAML builds. When we removed support for
XAML build in TFS 2018 RTW and Update 1, some of you could not upgrade
due to having legacy XAML builds, and we want to unblock you. Although
TFS 2018 Update 2 supports XAML builds for your legacy builds, XAML
build is deprecated and there will be no further investment, so we
highly recommend converting to a newer build definition format. See
the Evolving TFS/Team Services build automation capabilities blog
for more information about XAML build deprecation.
When you upgrade to TFS 2018 Update 2:
If you have any XAML build data in your team project collection,
you'll get a warning about the deprecation of XAML build features.
You will need to use VS or Team Explorer 2017 to edit XAML build
definitions or to queue new XAML builds.
If you need to create new XAML build agents, you’ll need to install
them using the TFS 2015 build agent installer.
XAML Build Controller/Agent info is now under Additional Tools and Components > XAML Build Configuration in the TFS Administration Console. Make sure your build services on the same server as your application tier. You possibly didn't re-configure your XAML build services after the upgrade. Try this and then check again.
Thanks #PatrickLu-MSFT!! through your help, we found a workaround.
Now we use one server for the Source Control etc. (TFS 2018) and another server only for the xaml-app-controller with TFS 2015.
So we can build our projects, and have time to create new build definitions.

Unshelve to a different branch using Visual Studio Online

Is it possible to unshelve to a different branch using the new Visual Studio Online TFS repository? I've tried using TFS Power Tools 2015 and the following command:
tfpt unshelve /migrate /source:"$/Sportlabs.Sportbench/Development/Sportlabs.Sportbench" /target:"$/Sportlabs.Sportbench/Development6/Sportlabs.Sportbench" "SR-Coaching"
I ran this from C:\Code\TFS\Sportlabs.Sportbench, which is mapped to $/Sportlabs.Sportbench in my local workspace. I've tried using both the Visual Studio 2015 and 2017 Developer command prompts. However, I keep getting the unable to determine the workspace error.
I've read that MS have abandoned power tools in TFS 2017 and built most of them in to TFS. If that's also the case for VS Online, how do I go about unshelving into a different branch?
To identify the current Workspace, tfpt seems to use the Method:
Microsoft.TeamFoundation.VersionControl.Client.Workstation.Current.GetLocalWorkspaceInfo(workspacePath)
I've jsut tried with TFS 2015 API and the call returns no result againt a Workspace of a VSTS project. I've also try with the TFS 2017 API and it works.
I don't think it will ever be possible to use TFPT 2015 againt a VSTS project to do TFVC operations.

tfpt.exe on Visual Studio 2017

Even after installing Productivity Power Tools extension for Visual Studio 2017 I still cannot run tfpt.exe to execute the command suggested on this post:
C:\Development> tfpt unshelve "ShevesetName;UserName" /migrate /source:"$/Project/Source" /target:"$/Project/Target"
Where can I find this program?
The Productivity Power Tools are not the same thing as the TFS Power Tools, so that's why installing it didn't help.
There is no set of TFS 2017 Power Tools. From the TFS 2017 release notes:
Issue: No Power Tools have been released for TFS 2017.
Workaround: We are excited to let you know that most of the previous
Power Tools have been integrated into TFS 2017. The Process Template
Editor is one that has not been integrated, but we are going to
publish a Process Template Editor tool for TFS 2017 to the Visual
Studio Gallery shortly after TFS 2017 is available. We will provide
the link here as soon as it’s published
Just as Daniel said, they are two entirely different things. A supplement :TFS 2017 Process Template Editor is available
In your case, you are trying to use the unshelve command to unshelve a shelveset to another branch in TFS. As a workaround you could use tf Unshelve and Rename command to achieve this in two steps.
Or just install a earlier version VS and Power Tools such as VS2015 and Microsoft Visual Studio Team Foundation Server 2015 Power Tools. After all you just need to match the version of the TFS Power Tools with your Visual Studio client.
Possible workaround, which helped me!
Create a new workspace and do not download all the files.
Unshelve your changes to this new workspace, which would result in having only the modified files from your current branch.
Compare and manually merge your changes into the other branch.
You can use this VisualStudio extension witch does exacly what you want:
MultiMerge - https://marketplace.visualstudio.com/items?itemName=Jesusfan.MultiMerge2022
This extension allow you to unshelve to other branch.
You can use git-tfs to accomplish this. The steps you should perform are (after git and git-tfs have been installed):
create a git branch from the shelveset (git_branch_a).
initialize a git branch (git_branch_b) based on the TFS target branch (tfs_branch_b).
merge the git_branch_a into git_branch_b.
based on the git_branch_b create a shelveset.
the new shelveset can now be unshelved in the tfs_branch_b.

How can I put xaml build definitions in source control in Visual Studio 2015?

I use Visual Studio 2015 and TFS 2012. In Team Explorer, it is possible to manage Builds and Build Definitions. Since VS2015, the section Build Definitions is named "XAML Build Definitions". I would like to put xaml build definitions in source control. Problem is I cannot find the build definition files on disk. Anyone knows where they are ?
Thanks
You can download build process template and add it into source control, but you can't version-control build definitions.
In the new build system coming with TFS 2015 you can see the full history of the changes to your build definition. The feature that is currently missing is the ability to undo or rollback to a previous revision. Check https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/2037625-provide-a-way-to-version-control-build-definitions
Just in case anyone needs to access the XAML Build Definitions parameters. They are saved in the TFS database, table: [dbo].[tbl_BuildDefinition].

how to install ssdt March 2014 release on windows server 2012

Our development sandboxes are currently running visual studio 2013 (update 2) and ssdt March 2014 release for our database projects. The latter was downloaded via the former.
I have started to look into tfs builds for the database projects. Our build box (controller and agent on the same box) is a windows server 2012 Standard with TFS 2012 installed.
I am trying to figure out what ssdt installs are required on the build box in order for msbuild to build and publish database projects - unfortunately I am not getting a clear picture.
Questions so far:
Is http://sqlproj.com/index.php/2012/03/headless-msbuild-support-for-ssdt-sqlproj-projects (still) relevant to our build box?
Do I have to install a visual studio shell to get ssdt March 2014 release? Or is there a standalone install?
Will ssdt March 2014 release suffice to get msbuild to build and publish?
The sqlproj.com article you referenced is still one of the better articles to follow. Note that right now it may be easier and better to install the VS2012 SSDTBuildUtilities.msi on your TFS 2012 build server. That is downloadable from the SSDT download page - the easiest way to get specific MSIs is to create an administrative install point which will lay them all out in a specific folder.
There have been a number of changes in the March 2014 release that require updates to the install recipe:
You need to use the SQL Server 2014 feature pack instead of 2012. The same MSIs are needed.
The expected install directory for the DAC and SSDTBuildUtilities compoments has changed. It's now expected to be under the Visual Studio install directory and will depend on having the $(VisualStudioVersion) environment variable set to match the VS version. If you're running TFS2012 the likely location will be "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120". You can confirm this by checking the targets file just as that article suggests
We are currently working on an improved TFS / Build Server configuration experience as this is clearly harder than it should be to set up right now, especially with the changes to DAC and SSDTBuildUtilities location. However we do not have a firm commit date on when this might be released.

Resources