2

my extension is working fine for VS2010 and VS2012. But not in VS2013?

Now if i install the VSIX with VS2013 the extension will be installed and is visible in Tools/Extension Manager. In the About-Dialog of Visual Studio there is no entry of the Extension. In VS2010 and VS2012 it is.

Is seams to be installed but not loaded. No menu entry or command of the extension is available.

But when i install the Visual Studio SDK 2013. Then the extension is loaded and works fine. I don't want to force the people in the project to install the SDK only for an extension.

The menus and commands are created via a VSCT-File. There are includes with Extern-Tag - may these make the trouble?

<!--This is the file that defines the IDs for all the commands exposed by VisualStudio. -->
<Extern href="stdidcmd.h"/>

<!--This header contains the command ids for the menus provided by the shell. -->
<Extern href="vsshlids.h"/>
<Extern href="vsdbgcmd.h" />
<Extern href="vsdebugguids.h" />

Or maybe some Assemblies / InteropTypes should be embedded?

Cœur
  • 37,241
  • 25
  • 195
  • 267
xks
  • 61
  • 7
  • 1
    The most likely cause is that you're referencing some DLLs that aren't present without the SDK. Try attaching a debugger or fuslogvw, start VS 2013 without the SDK and see what errors popup – JaredPar Feb 18 '14 at 17:27
  • Good advice, thanks. But now it's getting stranger: When i deinstall the SDK the Extentions still works. When i reinstall the extension same problem. Seams not to be the problem to the SDK...maybe there is another problem (in registry or manifest?) – xks Feb 18 '14 at 18:25
  • It only seams to be the menuentries - when i delete the cache in %LOCALAPPDATA%\Microsoft\VisualStudio\12.0\Extensions the menu on next start is also gone. But some commands still work?! :/ – xks Feb 18 '14 at 18:54
  • Some commands get stored in the user configuration section of the registry. To completely nuke an extension you need to delete both – JaredPar Feb 18 '14 at 20:03
  • What did debugger or fuslogvw tell you? My gut is telling me you depend on Shell.10.0.dll but that's not binding, and installing the SDK is providing it. But that's a real long shot. – Jason Malinowski Feb 20 '14 at 02:10
  • Hello Jason, the debugger and fuslogvw say nothing. But i really reference Shell.10.0.dll...what i found out: a) .vsixmanifest in vs2010-Format does not work for 2012+2013 and when i use the new PackageManifest Version2 the extension is installed+loaded also without SDK ... but not for 2010 with the new format... so i'll have to split my project :/ ... and b) with vs2012/2013 my VisibilityConstraints in the VSCT-File doesn't work anymore....But maybe this also belongs to referencing Shell.10.0.dll?! -> i'll try it today – xks Feb 21 '14 at 10:04
  • Some more diagnostics might be available by running Visual Studio with /Log, which writes to something like %AppData%\Microsoft\AppEnv\12.0\ActivityLog.xml by default (open with Internet Explorer). – Cameron Feb 26 '14 at 01:14
  • i splitted my project. for vs2010/vs2012 and vs2013. the vsix-fileformat seems to be the problem. vs2012 can handle the old format vs2013 not?! – xks Mar 24 '14 at 16:42
  • Same problem here, except the command buttons will not appear at all even after installing the 2013 SDK (though it works fine in 2010 and 2012), with my project: http://singlethread.codeplex.com – Erwin Mayer May 05 '14 at 06:01

1 Answers1

0

The most likely cause is you are not referencing the latest VS SDK 2013 assemblies. Please validate the path of the assemblies under references. That is, select the assembly under references node and hit F4 key and check the Path property.

For VS 2013, the assemblies are usually installed under C:\Program Files (x86)\Microsoft Visual Studio 12.0\VSSDK

Finally, also validate .vsixmanifest file for Install Target. It should be targeting VS version 2013. So version range should be [12.0,13.0).

utkarsh
  • 588
  • 1
  • 7
  • 18