где в Visual Studio устанавливаются пользовательские расширения?

Где в Visual Studio устанавливаются пользовательские расширения? Я знаю, что вы можете получить путь, хотя ExtensionManager.GetInstalledExtensions(), но похоже, что ни один из найденных путей не соответствует моему расширению.


person Yituo    schedule 16.06.2016    source источник


Ответы (2)


Расширения (если они развернуты как VSIX) будут установлены в профиль пользователя; каждое расширение будет установлено в папку со случайным именем, например:

%LocalAppData%\Microsoft\VisualStudio\12.0\Extensions\s5lxc0ne.1kp

Если вы хотите получить путь установки пакета во время выполнения, вы можете получить эту информацию из сборки, которая определяет класс 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));
person Matze    schedule 16.06.2016
comment
В случае, если вы не можете найти свое расширение в папке, описанной выше (например, я), существуют также административные расширения, которые можно найти здесь: ‹Папка установки Visual Studio› \ Common7 \ IDE \ Extensions \ - person Mark Spiezio; 02.11.2017

1- Найдите свой пакет ... Допустим, ваш пакет 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;
    }
}
person Alper Ebicoglu    schedule 07.03.2019