VS 2015安装程序项目 - 与旧版本号相关的依赖项已安装

时间:2016-09-23 15:25:39

标签: visual-studio visual-studio-2015

我有一个使用VS 2015安装程序项目的应用程序。

我们的BONEHEAD供应商ComponentOne发布了我的产品所依赖的几个组件的新版本。

这是一个问题: 旧DLL版本:4.1.20102 ... 新DLL版本: 4.0.20162 ...

较新的DLL至少比较旧的DLL具有更新的文件日期。

当然,较新的DLL修复了自更正后C1组件中的错误带来的实际用户问题。

虽然我可以通过让最终用户完全卸载旧版本的产品并安装新版本来获取正确的DLL,但这是行不通的,因为:

  1. 我们有一个自动更新功能,可以打电话回家并检查最新补丁并安装它以更新prevoius版本;和
  2. 我们的客户是女性,60岁以上和网络恐惧症。
  3. 该项目已将 RemovePreviousVersions 属性设置为true,我希望这样可以完全卸载。它不是;具有版本错误的六个程序集不会被替换。 DetectNewerInstalledVersion 属性也设置为true;我尝试使用False安装,它没有任何效果。

    我还尝试明确包含C1程序集的所有检测到的依赖项,但它没有任何效果。

    有没有办法强制安装项目覆盖程序集,只要文件日期更新,无论错误编码的版本是什么?

    已编辑添加以下内容:

    1. 我尝试在安装任何内容之前进行自定义操作以删除有问题的程序集 - 它在安装文件后运行。 :(
    2. 我尝试过InstallShield LE,但却发现它无法发现多个深度的依赖项,并没有提供明确指定依赖项的便捷方法。我也找不到任何可以让我说根据日期或无条件覆盖程序集的内容。
    3. 感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:0)

我找到了一个有效的解决方法。

我已将RemovePreviousVersions设置为true,因此我通过在路径末尾添加 [ProductVersion] 来更改应用程序的默认文件夹。

这实现了:

  1. 删除旧组件;和
  2. 它在新文件夹中创建了新程序集。
  3. 这很好地解决了这个问题。没有将REINSTALLMODE设置为 amus ;没有暴力解决方案。