我正在编写一个VSIX项目,我希望代码能够确定更新是否可用。
我知道Visual Studio可以检查更新,但是,我希望扩展能够更详细地提示用户(开发人员)。
谢谢。
答案 0 :(得分:7)
我发现我可以直接从清单XML文件中读取版本信息。
var doc = new XmlDocument();
doc.Load(manifestPath);
var metaData = doc.DocumentElement.ChildNodes.Cast<XmlElement>().First(x => x.Name == "Metadata");
var identity = metaData.ChildNodes.Cast<XmlElement>().First(x => x.Name == "Identity");
var version = identity.GetAttribute("Version");
我还写了一个封装上面代码的gist C# class code。此外,版本,此技术可用于获取清单文件提供的其他信息。
答案 1 :(得分:5)
Nordin的解决方案似乎很好,但我只想提一下,还有一种方法可以获得当前版本的扩展。我不知道在什么情况下我的解决方案可能会更好,也许如果您不知道使用此扩展的客户端上清单的路径。
// get ExtensionManager
IVsExtensionManager manager = GetService(typeof(SVsExtensionManager)) as IVsExtensionManager;
// get your extension by Product Id
IInstalledExtension myExtension = manager.GetInstalledExtension("ProductId-1234-1234-1234-123456789012");
// get current version
Version currentVersion = myExtension.Header.Version;
我在我的包的Initialize()
方法中调用它。