Où les extensions personnalisées sont-elles installées dans Visual Studio? Je sais que vous pouvez obtenir le chemin si ExtensionManager.GetInstalledExtensions()
, mais il semble qu'aucun des chemins trouvés ne corresponde à mon extension.
Les extensions (si déployées en tant que VSIX) seront installées dans le profil de l'utilisateur; chaque extension sera installée dans un dossier avec un nom aléatoire, par exemple:
%LocalAppData%\Microsoft\VisualStudio\12.0\Extensions\s5lxc0ne.1kp
Si vous souhaitez obtenir le chemin d'installation du package au moment de l'exécution, vous pouvez obtenir ces informations auprès de l'assembly qui définit la classe Package
.
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- Trouvez votre paquet ... Disons que votre paquet est 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;
}
}