visual studio 中的自定义扩展安装在哪里?
where are custom extensions installed in visual studio?
Visual Studio 中的自定义扩展安装在哪里?我知道您可以通过 ExtensionManager.GetInstalledExtensions()
获取路径,但似乎 none 找到的路径对应于我的扩展名。
扩展(如果部署为 VSIX)将安装到用户配置文件中;每个扩展都将安装到一个随机名称的文件夹中,例如:
%LocalAppData%\Microsoft\VisualStudio.0\Extensions\s5lxc0ne.1kp
如果要在运行时获取包安装路径,可以从定义 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- 找到您的包裹...假设您的包裹是 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;
}
}
Visual Studio 中的自定义扩展安装在哪里?我知道您可以通过 ExtensionManager.GetInstalledExtensions()
获取路径,但似乎 none 找到的路径对应于我的扩展名。
扩展(如果部署为 VSIX)将安装到用户配置文件中;每个扩展都将安装到一个随机名称的文件夹中,例如:
%LocalAppData%\Microsoft\VisualStudio.0\Extensions\s5lxc0ne.1kp
如果要在运行时获取包安装路径,可以从定义 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- 找到您的包裹...假设您的包裹是 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;
}
}