VS2015 Extension Manager 不报告 MSI 安装扩展的更新
VS2015 Extension Manager not reporting update for MSI-intalled extension
我写了 a Visual Studio extension,它使用 MSI 安装。安装将 extension.vsixmanifest
文件放在正确的位置,并且扩展按预期出现在扩展管理器中:
问题是,当我在 Visual Studio 图库上发布新版本时,扩展管理器没有报告。我通过创建新安装程序并编辑现有页面来添加新版本。每个新的安装程序都有一个新的 ProductCode、PackageCode 和 ProductVersion(我更新了 MSI 安装项目和包含的版本号 extension.vsixmanifest),但是相同的 UpgradeCode; 'upgrade' 提交示例可以在 GitHub here.
上找到
问题似乎是,当 Visual Studio Extension Manager 查询 the extensions service 我的扩展的最新版本时,它 returns 一个空字符串 - 与您查询的结果相同带有无效的扩展标识符:
示例中查询成功的两个分机是NuGet client tools for VS2015 and the SQL Server Compact/SQLite Toolbox.
我错过了什么?
可能您可能还需要提高 ProductVersion 并注意安装程序项目中升级 Table 中正确的版本条件。如果这无助于尝试使用完整详细日志 (msiexec /i installer.msi /l*v logfile.log) 调查此安装问题,这可能会提供一些线索。在最坏的情况下,您可能想在 RemoveFiles table 中添加一个条目以删除此文件(在部署文件之前的安装过程中),但这听起来很讨厌,我宁愿避免它。
我认为这不是您的安装程序配置的问题,假设您的安装程序实际上升级了您的产品。如果我对你的问题理解正确,那么这是 Extension Manager 的问题。
您是否尝试过从新版本字符串中删除结尾的 .0
? 3 点版本与 4 点版本比较时可能会有 poor/unexpected 比较结果。
您也可以尝试进行更极端的版本号更改(升级主要版本)以查看 Extension Manager 是否能够识别它。
哦哦哦哦KAY。我已经解决了这个问题,结果证明这是 Visual Studio 图库页面编辑器的问题。
添加扩展程序时,会显示一个 VSIX ID 框:
当你编辑一个扩展时(我正在使用Chrome),那个方框消失了!
它仍在 DOM 中,但已隐藏,无法查看。因此,我从未在表单中输入我的扩展的 VSIX ID,它没有关联的值,因此扩展服务没有 return 该 ID 的版本号。 Extension Manager 使用扩展服务查找已安装扩展的最新版本,因此它没有报告我的新版本。
如果您取消选择然后重新选择扩展支持的 Visual Studio 版本之一,VSIX ID 框会重新出现,所以我已经能够以这种方式分配 ID。该服务现在 return 是一个版本号,因此扩展管理器显示可用更新:
我写了 a Visual Studio extension,它使用 MSI 安装。安装将 extension.vsixmanifest
文件放在正确的位置,并且扩展按预期出现在扩展管理器中:
问题是,当我在 Visual Studio 图库上发布新版本时,扩展管理器没有报告。我通过创建新安装程序并编辑现有页面来添加新版本。每个新的安装程序都有一个新的 ProductCode、PackageCode 和 ProductVersion(我更新了 MSI 安装项目和包含的版本号 extension.vsixmanifest),但是相同的 UpgradeCode; 'upgrade' 提交示例可以在 GitHub here.
上找到问题似乎是,当 Visual Studio Extension Manager 查询 the extensions service 我的扩展的最新版本时,它 returns 一个空字符串 - 与您查询的结果相同带有无效的扩展标识符:
示例中查询成功的两个分机是NuGet client tools for VS2015 and the SQL Server Compact/SQLite Toolbox.
我错过了什么?
可能您可能还需要提高 ProductVersion 并注意安装程序项目中升级 Table 中正确的版本条件。如果这无助于尝试使用完整详细日志 (msiexec /i installer.msi /l*v logfile.log) 调查此安装问题,这可能会提供一些线索。在最坏的情况下,您可能想在 RemoveFiles table 中添加一个条目以删除此文件(在部署文件之前的安装过程中),但这听起来很讨厌,我宁愿避免它。
我认为这不是您的安装程序配置的问题,假设您的安装程序实际上升级了您的产品。如果我对你的问题理解正确,那么这是 Extension Manager 的问题。
您是否尝试过从新版本字符串中删除结尾的 .0
? 3 点版本与 4 点版本比较时可能会有 poor/unexpected 比较结果。
您也可以尝试进行更极端的版本号更改(升级主要版本)以查看 Extension Manager 是否能够识别它。
哦哦哦哦KAY。我已经解决了这个问题,结果证明这是 Visual Studio 图库页面编辑器的问题。
添加扩展程序时,会显示一个 VSIX ID 框:
当你编辑一个扩展时(我正在使用Chrome),那个方框消失了!
它仍在 DOM 中,但已隐藏,无法查看。因此,我从未在表单中输入我的扩展的 VSIX ID,它没有关联的值,因此扩展服务没有 return 该 ID 的版本号。 Extension Manager 使用扩展服务查找已安装扩展的最新版本,因此它没有报告我的新版本。
如果您取消选择然后重新选择扩展支持的 Visual Studio 版本之一,VSIX ID 框会重新出现,所以我已经能够以这种方式分配 ID。该服务现在 return 是一个版本号,因此扩展管理器显示可用更新: