web-dev-qa-db-fra.com

Où les extensions personnalisées sont-elles installées dans Visual Studio?

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.

39
Yituo

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));
55
Matze

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;
    }
}
1
Alper Ebicoglu