在visual studio中安装了自定义扩展?

问题描述 投票:36回答:2

Visual Studio中安装的自定义扩展在哪里?我知道你可以通过ExtensionManager.GetInstalledExtensions()获得路径,但似乎没有找到的路径对应于我的扩展。

visual-studio-extensions vsix vsx vs-extensibility
2个回答
55
投票

扩展程序(如果部署为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));

1
投票

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;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.