我编写了使用MSI安装的Visual扩展。安装将一个extension.vsixmanifest文件放置在正确的位置,扩展名如预期的出现在extension中:

问题是,当我在Visual库上发布新版本时,扩展管理器不会报告它。我通过创建一个新的安装程序并编辑现有的页面来添加新版本。每个新安装程序都有一个新的ProductCode、PackageCode和ProductVersion (我更新了MSI安装项目和包含的extension.vsixmanifest中的版本号),但是UpgradeCode是相同的;在GitHub 这里上可以找到一个“升级”提交示例。
问题似乎是,当Visual扩展管理器查询扩展服务以获取我的扩展的最新版本时,它返回一个空字符串--这与使用无效扩展标识符进行查询的结果相同:

示例中成功查询的两个扩展是NuGet客户端工具 for VS2015和工具箱。
我遗漏了什么?
发布于 2016-05-31 19:13:17
OhhhhhhKAY。我已经解决了这个问题,结果是页面编辑器出现了问题。
添加扩展名时,将显示一个VSIX ID框:

当你编辑一个扩展(我在使用Chrome)时,这个框已经消失了!

它仍然在DOM中,但它被隐藏在视野之外。因此,我从未在表单中输入扩展的VSIX ID,它没有与其关联的值,因此扩展服务没有返回该ID的版本号。extensions使用extensions来查找已安装的扩展的最新版本,因此它没有报告我的新版本。
如果取消选择,则VSIX ID框将重新显示,然后重新选择扩展的受支持的Visual版本之一,因此我已经能够以这种方式分配ID。服务现在返回版本号,扩展管理器因此显示可用的更新:

发布于 2016-05-25 16:49:53
在安装程序项目的升级表中,您可能还需要提高ProductVersion并考虑正确的版本条件。如果这无助于研究这个问题,使用完整的日志(msiexec /i installer.msi /l*v logfile.log)进行安装,这可能会提供一些线索。最糟糕的情况是,您可能希望在RemoveFiles表中添加一个条目来删除该文件(在部署文件之前安装时),但这听起来很糟糕,我更希望避免它。
发布于 2016-05-27 18:39:28
我不认为这是一个问题的安装程序配置,假设您的安装程序,实际上,升级您的产品。如果我正确理解了你的问题,这就是扩展管理器的问题。
您试过从新版本字符串中删除尾随的.0吗?当比较3点版本和4点版本时,可能会有一个糟糕的/意外的比较结果。
您还可以尝试做一个更极端的版本号更改(提高主版本),以查看Extension是否会发现这一点。
https://stackoverflow.com/questions/37349459
复制相似问题