Visual studio VS2015扩展管理器未报告MSI内置扩展的更新

Visual studio VS2015扩展管理器未报告MSI内置扩展的更新,visual-studio,windows-installer,upgrade,Visual Studio,Windows Installer,Upgrade,我已经编写了使用MSI进行安装的程序。安装会将扩展名.vsixmanifest文件放在正确的位置,扩展名会按预期显示在扩展管理器中: 问题是,当我在VisualStudioGallery上发布新版本时,扩展管理器不会报告它。我通过创建新的安装程序并编辑现有页面来添加新版本。每个新安装程序都有一个新的ProductCode、PackageCode和ProductVersion(我更新了MSI安装项目和扩展名.vsixmanifest中的版本号),但升级代码相同;在GitHub上可以找到“升级”提

我已经编写了使用MSI进行安装的程序。安装会将
扩展名.vsixmanifest
文件放在正确的位置,扩展名会按预期显示在扩展管理器中:

问题是,当我在VisualStudioGallery上发布新版本时,扩展管理器不会报告它。我通过创建新的安装程序并编辑现有页面来添加新版本。每个新安装程序都有一个新的ProductCode、PackageCode和ProductVersion(我更新了MSI安装项目和扩展名.vsixmanifest中的版本号),但升级代码相同;在GitHub上可以找到“升级”提交示例

问题似乎在于,当Visual Studio Extension Manager查询最新版本的my Extension时,它会返回一个空白字符串—与使用无效扩展标识符进行查询时的结果相同:

示例中成功查询的两个扩展是VS2015和


我遗漏了什么?

您可能还需要提高ProductVersion,并在installer项目的升级表中记住正确的版本条件。如果这无助于尝试调查此问题,请使用完整详细日志(msiexec/i installer.msi/l*v logfile.log)进行安装,这可能会提供一些线索。最坏的情况是,您可能希望在RemoveFiles表中添加一个条目以删除此文件(在部署文件之前的安装过程中),但这听起来很糟糕,我希望避免它。

我认为这不是安装程序配置的问题,假设安装程序确实升级了产品。如果我正确理解您的问题,这是扩展经理的问题

您是否尝试过从新版本字符串中删除尾随的
.0
?比较3点版本和4点版本时,可能会出现较差/意外的比较结果


您还可以尝试进行更极端的版本号更改(增加主版本),以查看扩展管理器是否会接受该更改。

ohhhkay。我已经解决了这个问题,结果是VisualStudioGallery页面编辑器出现了问题

添加扩展时,会显示一个框:

当你编辑一个扩展时(我使用的是Chrome),这个框就消失了

它仍然在DOM中,但在视图中是隐藏的。因此,我从未在表单中输入扩展的VSIX ID,它没有与之关联的值,因此扩展服务没有返回该ID的版本号。扩展管理器使用扩展服务查找已安装扩展的最新版本,所以它没有报道我的新版本

如果取消选择,然后重新选择扩展支持的Visual Studio版本之一,则VSIX ID框将重新出现,因此我能够以这种方式分配ID。该服务现在返回一个版本号,因此扩展管理器将显示可用的更新:


谢谢你的建议:)我正在更新ProductVersion(我更新了我的问题以反映这一点),我认为安装程序升级表是可以的-它会在安装过程中删除以前的版本。问题是Visual Studio Gallery没有报告更新版本。嗯,我猜Visual Studio在configfiles或注册表中生成了一些配置,这些配置只在首次发现文件时出现。您可以尝试在VS首次添加此插件之前创建一个系统快照,并查看它所做的更改。Msi版本不支持4位数格式,它只会忽略第3个dotYep之后的所有内容!安装程序有一个3位数的版本号。该扩展目前有一个4位数的版本,但它以前有一个3位数的版本,这也不起作用:/我链接的示例提交是我第一次使用4位数的版本-以前的3位数到3位数的升级没有显示,我现在尝试了4位数到4位数的升级,但也没有显示。我尝试更新主要版本号,但也没有显示。Hmmmmmm…我看到的一件事是,在vsixmanifest文件(VisualStudio/src/GitHub.VisualStudio/source.extension.vsixmanifest)和安装程序ProductInfo.wxi(VisualStudio/src/msInstaller/ProductInfo.wxi)文件中都有vsix guid。也许您的安装程序(vdproj)需要相同的设置?在ProductInfo.wxi中定义的VSIX ID变量用于主产品中片段元素的ID。wxi-我认为vdproj没有与此等效的设置。WIX版本看起来也有一个ProductCode和一个UpgradeCode,与vdproj相同。因此,为了缩小范围,Visual Studio Gallery是否没有显示新版本(例如:我转到页面,我没有安装扩展,它显示的是旧版本),或者我已经有扩展,Gallery页面有更新版本,但是我的扩展管理器无法识别升级是否可用?后者-gallery网站会正确更新到最新版本,但当您安装了较旧版本时,扩展管理器不会报告可用的升级。我将用更多细节更新我的问题。谢谢:)