Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix 新组件的文件为';t安装,因为有一个具有相同文件的旧组件_Wix_Windows Installer_Installation - Fatal编程技术网

Wix 新组件的文件为';t安装,因为有一个具有相同文件的旧组件

Wix 新组件的文件为';t安装,因为有一个具有相同文件的旧组件,wix,windows-installer,installation,Wix,Windows Installer,Installation,我们有一个问题,即在主要更新时没有安装fie 我们对 类似的答案: 主要升级降级:为了在主要升级时覆盖版本号较高的二进制文件,有两个首选选项: 首选方法是使用配套文件(第三方文件) 或者,如果可以:编译版本号更高的新二进制文件(用于您自己的文件) 配套文件:下面是一段关于如何在WiX中使用的片段: 设置2:主要升级设置的版本2.0.0: msiexec.exe /i Setup2.msi REINSTALLMODE=amus /qn 若干问题:重新安装模式存在若干问题,使其成为一种不

我们有一个问题,即在主要更新时没有安装fie

  • 我们对
    
    类似的答案


    主要升级降级:为了在主要升级时覆盖版本号较高的二进制文件,有两个首选选项:

    • 首选方法是使用配套文件(第三方文件)
    • 或者,如果可以:编译版本号更高的新二进制文件(用于您自己的文件)

    配套文件:下面是一段关于如何在WiX中使用的片段:

    设置2:主要升级设置的版本
    2.0.0

    msiexec.exe /i Setup2.msi REINSTALLMODE=amus /qn
    
    若干问题:重新安装模式存在若干问题,使其成为一种不安全的功能(请尝试使用
    EMU
    ?-可能会少一点暴力)。遗憾的是,此设置适用于设置中的所有功能,这使得它非常危险:

    • 可以在系统范围内降级共享文件-如果包含合并模块-例如(Windows中的功能可以防止大部分此问题:在Vista中,beyond-非Microsoft合并模块仍可能导致非Microsoft共享文件出现问题)
    • 可能会导致版本不一致,因为旧软件包可以在新软件包之后安装,并且只能降级部分共享文件
    • 可以降级或删除非版本文件和注册表设置中的设置(请注意:再次测试,组件设置很复杂)
    • 由于尝试不必要地替换同一版本的在用文件(真正的解决办法是正确关闭服务,并允许应用程序在部署期间自动关闭),可能会导致请求的重新启动次数显著增加
    • 还有几个非常具体的问题

    :一个丑陋但有效的选项是使用Visual Studio更改实际二进制文件的版本,以设置更高的版本号(将二进制文件作为资源打开并设置新版本-这显然与使用Visual Studio源代码编译来编译二进制文件的新版本非常不同)。有几个副作用:

    • 你破坏了数字签名
    • 您可以创建“版本混淆”
    • 从VisualStudio编写新的二进制文件存在风险
    • 这是一个“黑客手册步骤”-您可能需要在新版本中继续这样做
    • 等等

    移动,重命名:如果您可以通过重命名或移动新文件将其与旧文件分离,则可以解决此问题。如果您将来再次获得一个新版本,您可能需要再次执行此操作。笨重的

    “加载自”:将文件放在共享位置,然后从该特定位置加载,并从安装文件夹中删除旧副本。那行吗?这意味着该文件也可以由该位置的另一个安装程序交付


    版本设置:在Installshield中,有一个概念是能够为文件设置特定的版本号。我不知道如何在WiX中实现这一点。还有一个明显设置了版本的最大值,因此现有文件总是被覆盖


    某些链接


    有很多方法可以实现这一点:
    1)
    companion file,
    2)
    msi中的假版本信息,
    3)
    hack使用visual studio更新文件中的版本号,
    4)
    设置自定义重新安装模式,
    5)
    移动文件并创建具有新guid的新组件,
    6)
    重命名文件并创建新的组件guid等。。。5和6将新文件从过去的罪恶中分离出来,但如果有一个新的降级文件,问题可能会重新出现。用VisualStudio(打开二进制文件作为资源,然后设置新的版本号并保存文件)破解版本号有点疯狂,但在大多数情况下(我见过的所有情况下),它实际上可以“消除问题”。不过,这可能会导致新的问题,例如,很明显,对于供应商提供的版本,您会感到非常困惑。也许您只能更改其中一个版本(产品版本与文件版本-从未尝试过-不确定MSI需要哪个版本,我认为是文件版本)。程序可以在上面答案底部的链接中找到。不可能在文件中修改版本号。这会破坏签名。而且这个签名是必需的。在MSI中伪造版本需要在现在和将来都这样做。。。什么是自定义重新安装模式?我想我会在下面写下来。重新安装模式不需要使用,因为它全局应用于整个设置,并可能导致许多副作用。我将尝试链接到描述。我将首先使用命令行提交一个答案。我建议您尝试配套文件方法,而不是重新安装模式。
    msiexec.exe /i Setup1.msi /qn
    
    msiexec.exe /i Setup2.msi REINSTALLMODE=amus /qn