如何读取已安装的VSPackage的版本

3

我希望检查当前已安装的VSPackage版本,以便在版本过时时通知用户。我不想上传我的扩展(尚未),因此无法使用内置更新功能。

如何读取在vsixmanifest文件中指定的扩展版本号?


@michaelrmcneill:不要重复!我想要的是我安装的 VSPackage 版本,而不是 Visual Studio 的版本! - flayn
@SimonMourier:我知道如何在Visual Studio中读取/编辑/查看它。我想知道如何在扩展运行时读取版本。类似于https://dev59.com/EWgu5IYBdhLWcg3wxZ3d?rq=1,但不是Visual Studio版本。 - flayn
1个回答

2

You could use a function like this:

    public static Version GetExecutingAssemblyVersion()
    {
        var ver = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location);

        // read what's defined in [assembly: AssemblyFileVersion("1.2.3.4")]
        return new Version(ver.ProductMajorPart, ver.ProductMinorPart, ver.ProductBuildPart, ver.ProductPrivatePart);
    }

VSPackage 在 Visual Studio 内执行。你的代码只会给我 Visual Studio 的版本。 - flayn
你测试过了吗?Assembly.GetExecutingAssembly获取包含当前正在执行的代码的程序集。 - Simon Mourier
我改正了!但是这只给我DLL版本,而不是我在vsixmanifest文件中指定的版本。 - flayn
你应该在问题中明确说明你想要的是什么(Vsix清单版本),就像我最初问的那样。 - Simon Mourier
我更新了问题。 - flayn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接