Where are custom extensions installed in Visual Studio? I know you could get path though ExtensionManager.GetInstalledExtensions(), however it seems none of the paths found corresponds to my extension.
Installation location During installation, Extensions and Updates looks for the contents of the VSIX package in a folder under %LocalAppData%\Microsoft\VisualStudio\14.0\Extensions. By default, the installation applies only to the current user, because %LocalAppData% is a user-specific directory.
Extensions (if deployed as VSIX) will be installed to the user´s profile; each extension will be installed into a folder with a random name, for instance:
%LocalAppData%\Microsoft\VisualStudio\12.0\Extensions\s5lxc0ne.1kp
If you want to obtain the package installation path at runtime, you can obtain that information from the assembly that defines the Package class.
static string GetAssemblyLocalPathFrom(Type type)
{
string codebase = type.Assembly.CodeBase;
var uri = new Uri(codebase, UriKind.Absolute);
return uri.LocalPath;
}
...
string installationPath = GetAssemblyLocalPathFrom(typeof(MyPackage));
1- Find your package... Let's say your package is MyExtensionPackage.
public sealed class MyExtensionPackage : Package
{
//...
}
public static string GetExtensionInstallationDirectoryOrNull()
{
try
{
var uri = new Uri(typeof(MyExtensionPackage).Assembly.CodeBase, UriKind.Absolute);
return Path.GetDirectoryName(uri.LocalPath);
}
catch
{
return null;
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With