【问题标题】:Specify VS extension installation directory name指定VS扩展安装目录名
【发布时间】:2013-11-11 08:52:39
【问题描述】:
在 VS 2012 中安装扩展程序后,它被放置在 %userprofile%AppData\Local\Microsoft\VisualStudio\11.0\Extensions\(或 C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions,如果为所有用户安装)和随机名称的文件夹中,如“hilatg23.234”或“kcsuvnvi.qtq”。有没有办法指定这个文件夹的名称并使这个扩展安装到像%userprofile%AppData\Local\Microsoft\VisualStudio\11.0\Extensions\MY_EXTENSION_NAME这样的文件夹中
【问题讨论】:
标签:
visual-studio
visual-studio-2012
visual-studio-extensions
【解决方案1】:
嗯,不这么认为。 VSIX 安装程序将始终自动选择安装目录。如果您想让用户决定安装文件夹,您需要创建一个MSI 安装包。
前段时间我回答了另一个关于包注册的问题;也许提供的一些信息可能有助于创建这样的设置。见帖子:MSI installed VSPackage is loaded in Experimental Instance only
如果你只是想在运行时获取包的安装文件夹,你可以从包的汇编代码库中获取它,比如:
private static string ObtainInstallationFolder()
{
Type packageType = typeof(MyPackage);
Uri uri = new Uri(packageType.Assembly.CodeBase);
var assemblyFileInfo = new FileInfo(uri.LocalPath);
return assemblyFileInfo.Directory.FullName;
}
【解决方案2】:
我的解决方案:
我用这个api获取vsix安装物理路径:
string path = System.Reflection.Assembly.GetExecutingAssembly().Location;
path = \AppData\Local\Microsoft\VisualStudio\...\Extensions\[install path]\xx.dll