I'm using a Visual Studio Private Gallery to publish a VSIX internal to my company. My VSIX shows up in the "Online" section of "Extensions and Updates" in Visual Studio 2012 and I can install it from there:
However, once it's installed, I can't figure out how to update my extension in a way that makes it show up in the "Updates" section of that same dialog box, nor can I figure out how to make Visual Studio notify me that an update is available.
I've tried various combinations of the following:
- Increasing the version number in the VSIX itself and in the atom.xml
- Changing the
updated
tag inside of theentry
tag to the current date and time - Changing the
updated
tag inside of thefeed
tag to the current date and time - Changing the
published
tag inside of theentry
tag to the current date and time
My expectation was that a combination of 1, 2, and 3 should be enough to show that there is an update, but to no avail. This guide seems to confirm my expectation:
- Published - The date/time when the extension was added.
- Updated - The date/time when the extension was last updated.
I've also tried all 4 at the same time, also to no avail.
I'm serving the gallery from an Apache instance, and I've confirmed that it's setting a correct Last-Modified header for the atom.xml .
Is there some interval at which Visual Studio checks for updates? Does opening the "Updates" section of "Extensions and Updates" not force Visual Studio to check?
Here's the contents of my atom.xml:
<?xml version="1.0" encoding="utf-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title type="text">Visual Studio Extension Gallery</title>
<id>uuid:CDC295B0-7885-4B59-9BDF-F059A9F4B338;id=1</id>
<updated>2013-12-11T19:00:00Z</updated>
<entry>
<id>MyVSIX..b242c6de-d0a6-4ba1-9672-b866e36607d3</id>
<title type="text">MyVSIX</title>
<summary type="text">MyVSIX is a nifty extension that does things.</summary>
<published>2013-12-11T19:00:00Z</published>
<updated>2013-12-11T19:00:00Z</updated>
<author>
<name>daxelrod</name>
</author>
<content type="application/octet-stream" src="vsix/MyVSIX.vsix" />
<Vsix
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.microsoft.com/developer/vsx-syndication-schema/2010"
>
<Id>MyVSIX..b242c6de-d0a6-4ba1-9672-b866e36607d3</Id>
<Version>0.5</Version>
<References />
<Rating xsi:nil="true" />
<RatingCount xsi:nil="true" />
<DownloadCount xsi:nil="true" />
</Vsix>
</entry>
</feed>
I should also note that my extension is not Strong Name Signed, because it uses a third party assembly that is unsigned. Does that make a difference?
I had the same Issue and made some deep investigation. In my case it was odd, that my extension always shown as "Download" in the Private Gallery instead as "Installed" (the Green Hook). So I guessed there is a missing Link between the Gallery item and the installed Item
The answer is as simple as annoying:
The ID has to be "THE ID". So the Product ID (in the VSIX Configuration) is the reference which has to be in the Atom-File.
In Your case:
As you see: Withyout your "MyVSIX..". After that it will recognize your Extension and if installed also hide the "Download" Button within the Gallery
For Update:
It's enough if you increase the < Version > Content.
For The Update Cycle (my experience):
EDIT: (thanks for the Upvote)
Here the Pictures for better understaning (made in VS2013, but almost same for VS2012)
The ID in the VSIX File.
How it should look like in the Atom-Feedfile.
How it should look if you correctly linked between Gallery and VSIX File.