Coder Social home page Coder Social logo

axodox / vsixupdater Goto Github PK

View Code? Open in Web Editor NEW
11.0 5.0 3.0 20 KB

MSBuild task to update VSIX packages to v3 for Visual Studio 2017 - can be used with older versions of Visual Studio

License: MIT License

C# 100.00%
vsix visual-studio-extension 2017

vsixupdater's Introduction

Introduction

VsixUpdater is a tool to update VSIX packages to version 3 for Visual Studio 2017 compatibility - but unlike the VSSDK Nuget package it can be used with older versions of Visual Studio. As building with older versions is often required for backward compatibility reasons, this tool can be used to avoid multiple build setups to maintain compatibility from Visual Studio 2012 to 2017.

Usage and best practices

VsixUpdater works as a custom MSBuild build task for VSIX projects. After adding the NuGet package to a VSIX project VsixUpdater will run after each build. It will scan the output folder for VSIX files, and update each of them.

The update will perform the follwing:

  • Adds the proper installation targets for Visual Studio 2017 in the .vsixmanifest file.
  • Adds the prerequisities section in the .vsixmanifest file.
  • Adds the manifest.json and the catalog.json files required by VSIX V3.
  • Compresses all parts of the package which are not already on maximum compression to reduce VSIX file size.

This tool will NOT unzip the VSIX file to a temporary directory, it will rather edit it in memory, then write it back to the original file. This ensures high performance on IO constrained systems.

It is recommended that you still set the prerequisities section as MSDN describes, as otherwise important components might be missing from the target machine. If you add the section beforehand, VsixUpdater will not touch it.

I did only test the tool on a handful of packages, it is possible that it breaks with some configurations, in this case I suggest you to raise an issue and/or download the sourcecode and debug it. If you raise an issue, make sure to reference the nuget package you have issues with if possible.

Building the source

This tool is very simple and it does not require any special SDK to be installed, it should build with Visual Studio 2015 or later out of the box. On earlier versions of Visual Studio add the Microsoft.Net.Compilers NuGet package to support new C# features used in the code and it should build just as well.

vsixupdater's People

Contributors

axodox avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.