locked
VS2012 Extension installed with MSI not showing up in VS RRS feed

  • Question

  • Hi,

    We created a VS2010/VS2012 extension that we are installing as an MSI.  The extension installs correctly in VS2010. However, when it installs in VS2012 the extension menu does not appear and the extension is missing from the Extension Manager.

    I did a little research on this and I found a post that said VS2012 does not scan the extensions directory each time it starts as a performance improvement over VS2010.  However, that also means that our new extension is not found until that scan happens.  I experimented with this and I am able to get the scan to happen when I install another extension through VSIX or if I run devenv /setup at the command line and then start VS2012.

    I found a few registry entries that I think have an impact on whether a scan occurs at start-up or not.  They are keys under  HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\ExtensionManager\EnabledExtensions:

    ExtensionsChanged

    LastCheckForUpdates

    These use a date time value in a binary format.  Would setting one or both of these values force a rescan of the extension manager when VS2012 starts?  Could we set the value to "0" to achieve this?  Is there another way to force the extension manager to look for new extensions that we can execute as part of the install process?

    Thanks

    Jeff

     

    Wednesday, March 5, 2014 7:55 PM

Answers

  • Hi Jeff,

    The recommended way to fix this is to have your installer run devenv /setup after installing all your components. This was actually a requirement before VS 2010, and as you mentioned reinstated with VS 2012, to remove the overhead of scanning the registry on every start of the IDE.

    While those registry values are used internally, I would avoid them as they are undocumented and subject to change.

    Sincerely,


    Ed Dore

    Thursday, March 6, 2014 1:26 AM

All replies

  • Hi Jeff,

    The recommended way to fix this is to have your installer run devenv /setup after installing all your components. This was actually a requirement before VS 2010, and as you mentioned reinstated with VS 2012, to remove the overhead of scanning the registry on every start of the IDE.

    While those registry values are used internally, I would avoid them as they are undocumented and subject to change.

    Sincerely,


    Ed Dore

    Thursday, March 6, 2014 1:26 AM
  • Ed,

    Thanks for the reply.  I tested the registry key changes and found that I could make an update to this key value:

    HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0: ConfigurationChanged

    And that was enough to have VS2012 pickup the new extension.

    That being said I understand your point on the registry entries and we will probably implement the call to devenv /setup in order to register the change.  My only objection to this is the amount of time that it takes to run.  It took just over 90 secs to complete.  Since we only release an update to our extension about once per month the extra time is probably not that big of a deal.

    Thanks again for the help.

    Jeff

    Thursday, March 6, 2014 2:05 PM