Blog

Publish your extension to a local TFS Update 2 server

01 Jun, 2016
With the availability of extensions for TFS I’ve been looking for an easy way to publish extensions and their updates to the local marketplace. While I’m sure that Microsoft will at some point integrate the two, for now you need to manually sync the extensions between the VSTS Marketplace and your local TFS Marketplace.

Turns out that the tools used to publish to the VSTS Marketplace work for the TFS one as well. to publish an extension you do need to pass in the service url manually and this took a little bit of fiddling to figure out what to put in there. Turns out that it takes the server root,

C:t>tfx extension publish --root . --manifest-globs vss-extension.json 
--service-url https://jessehouwing:8080/tfs --proxy https://xebia.com/blog:8888
Checking if this extension is already published
It isn't, create a new extension.
Waiting for server to validate extension package...

=== Completed operation: publish extension ===
- Packaging: C:tjessehouwing.jessehouwing-vsts-variable-tasks-0.0.0.vsix
- Publishing: success
- Sharing: not shared (use --share-with to share)


If your server isn’t configured with Basic Authentication enabled, you can use the Fiddler hack to authenticate over NTLM. As you can see by the –proxy option int he command above, that’s what I’m doing at the moment.

It should be relatively easy to build a PowerShell script that uses the –json option to list all extensions on the local TFS Marketplace and then check the online marketplace for a newer version to automatically sync extensions which have already been installed. Stick that in a Build Definition on a Schedule and your local marketplace will always be up to date with the latest versions. That’s something for a future blogpost.

Jesse is a passionate trainer and coach, helping teams improve their productivity and quality all the while trying to keep work fun. He is a Professional Scrum Trainer (PST) through Scrum.org for the Professional Scrum Foundations (PSF), Professional Scrum Master (PSM) and Developer (PSD .NET) programs. With a strong background in the .NET platform and C#, Jesse is able to translate the needs of development teams when it comes to tools to manage work, build the code and keep quality up. He has contributed to a number of open source products that extend – as well as supported commercial tools like NDepend in their integration into – Team Foundation Server. Jesse regularly blogs and contributes to numerous communities on StackExchange and MSDN networks, he has received the Microsoft Community Contributor Award three years in a row and has been recently been awarded the Microsoft Most Valuable Professional award. He’s spoken at conferences and user groups, including the Microsoft TechDays and the Scrum Day Europe. Trainer certifications: Professional Scrum Foundations Professional Scrum Master Professional Scrum Developer (.NET) Scaled Professional Scrum (SPS) Scaled Agile Program Consultant In past years Jesse has delivered ALM, Test Automation and Scrum training all over the world, most recently in Sydney, Milan and Bangalore. He has redelivered materials from industry leading partners as well as developed his own. In addition to the previously mentioned subjects Jesse has taught courses on Visual Studio, Object Oriented Analysis and Design, Design Patterns for C# developers, Unified Modelling languages and Regular Expressions. Jesse is married with Charlotte, recently became father of his first daughter and lives in a house that’s more than a century old in the beautiful city of Utrecht. He loves espresso and dark chocolate, travels a lot and takes photos everywhere he goes.

Explore related posts