指定 VS 扩展安装目录名称



在VS 2012中安装扩展后,它被放置在%userprofile%AppDataLocalMicrosoftVisualStudio11.0Extensions(如果为所有用户安装,则放在C:Program Files (x86)Microsoft Visual Studio 11.0Common7IDEExtensions中)和随机名称的文件夹中,如"hilatg23.234"或"kcsuvnvi.qtq"。有没有办法指定此文件夹的名称并使此扩展程序安装到文件夹中,例如%userprofile%AppDataLocalMicrosoftVisualStudio11.0ExtensionsMY_EXTENSION_NAME

嗯,不要这么认为。VSIX 安装程序将始终自动选择安装目录。如果要让用户决定安装文件夹,则需要创建MSI安装包。

不久前,我回答了另一个关于软件包注册的问题;也许提供的一些信息可能有助于创建这样的设置。请参阅帖子:MSI 已安装的 VSPackage 仅在实验实例中加载

如果只想在运行时获取包安装文件夹,可以从包的程序集代码库中获取它,例如:

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;
}    

我的解决方案:

我使用此 api 获取 vsix 安装物理路径:

string path = System.Reflection.Assembly.GetExecutingAssembly().Location;
path = AppDataLocalMicrosoftVisualStudio...Extensions[install path]xx.dll
可以使用

vsix 项目文件中的以下 msbuild 属性控制扩展<文件夹的名称>:

<ExtensionInstallationFolder>YourExtensionName</ExtensionInstallationFolder>

相关内容

  • 没有找到相关文章

最新更新