我已经使用MSI安装了a Visual Studio extension。安装会将[{
name: "banana",
type: "fruit"
}, {
name: "grape",
type: "fruit"
}, {
name: "orange",
type: "fruit"
}, {
name: "carrot",
type: "vegetable"
}]
文件放在正确的位置,并且扩展程序会按预期显示在Extension Manager中:
问题是,当我在Visual Studio库上发布新版本时,Extension Manager不会报告它。我通过创建新安装程序并编辑现有页面来添加新版本。每个新安装程序都有一个新的ProductCode,PackageCode和ProductVersion(我更新了MSI安装项目和包含的extension.vsixmanifest中的版本号),但是相同的UpgradeCode;一个例子'升级'提交可以在GitHub上找到here。
问题似乎是当Visual Studio Extension Manager向the extensions service查询我的扩展的最新版本时,它返回一个空字符串 - 与使用无效的扩展名标识符查询时的结果相同:
示例中成功查询的两个扩展程序是VS2015的NuGet client tools和SQL Server Compact/SQLite Toolbox。
我错过了什么?
答案 0 :(得分:1)
OhhhhhhKAY。我已经解决了这个问题,结果证明Visual Studio Gallery页面编辑器存在问题。
添加扩展程序后,系统会显示VSIX ID框:
当你编辑扩展程序(我正在使用Chrome)时,该框已经消失!
它仍然在DOM中,但它隐藏在视野之外。因此,我从未将扩展程序的VSIX ID输入到表单中,它没有与之关联的值,因此扩展服务没有返回该ID的版本号。 Extension Manager使用扩展服务来查找已安装扩展的最新版本,因此它没有报告我的新版本。
如果取消选择然后重新选择扩展程序支持的Visual Studio版本之一,则会再次出现VSIX ID框,因此我已经能够以这种方式分配ID。该服务现在返回版本号,因此Extension Manager显示可用的更新:
答案 1 :(得分:0)
也许您可能需要提升ProductVersion并在安装程序项目的升级表中考虑正确的版本条件。如果这无助于尝试使用完整详细日志(msiexec / i installer.msi / l * v logfile.log)进行安装调查,则可能会提供一些线索。在最糟糕的情况下,您可能需要向RemoveFiles表添加一个条目以删除此文件(在部署文件之前的安装期间),但这听起来很讨厌,我宁愿避免使用它。
答案 2 :(得分:0)
我认为这不是您的安装程序配置的问题,假设您的安装程序确实升级了您的产品。如果我正确理解您的问题,这是Extension Manager的问题。
您是否尝试从新版本字符串中删除尾随.0
?将3点版本与4点版本进行比较时,可能会出现差/意外的比较结果。
您还可以尝试进行更极端的版本号更改(提升主要版本)以查看Extension Manager是否选择了该版本号。