.net设置项目部队修复

时间:2014-03-04 07:52:13

标签: .net windows-installer command-line-arguments setup-project

我已经在这个探测器上工作了一天左右,但未能弄明白。

所以我有一个带有bootstrap setup.exe的.Net安装项目,我想从命令行“强制重新安装”我在命令行参数中看到有一个开关:

Windows ® Installer. V 5.0.7601.17514 

msiexec /Option <Required Parameter> [Optional Parameter]

Repair Options
    /f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode>
        Repairs a product
        p - only if file is missing
        o - if file is missing or an older version is installed (default)
        e - if file is missing or an equal or older version is installed
        d - if file is missing or a different version is installed
        c - if file is missing or checksum does not match the calculated value
        a - forces all files to be reinstalled
        u - all required user-specific registry entries (default)
        m - all required computer-specific registry entries (default)
        s - all existing shortcuts (default)
        v - runs from source and recaches local package

现在如果我将setup.exe运行为:

setup.exe / fa setupdll.msi它不会在/ f树下工作或任何其他包含

有没有人可以帮忙解决这个问题?

EDIT1: 如果我从命令行运行它,这是有效的:

%windir%\system32\msiexec /fa setupdll.msi

问题是,与我使用gui

运行安装程序的方式完全不同

gui修复如下:

  1. 替换所有文件
  2. 重新注册新文件
  3. 命令行aproach执行以下操作:

    1. 替换所有文件 但是没有将新的dll注册到gac
    2. 知道为什么吗?

2 个答案:

答案 0 :(得分:0)

好的,我知道这是对所有事情的黑客行为,但我的用例有点具体,如果有人在这里做同样的事情是为什么以及如何:

<强>梗概: 我有一个c $ dll作为com对象在另一种编程语言中使用它,我创建了这个设置来在gac中注册dll。

问题是当我更改了dll时,即使我把新的产品代码和新版本的设置项目和新版本的dll本身也没有得到Visual Studio安装项目的更新。

如果我只使用/ ra进行修复,如果尚未安装该产品的版本,则无效

我的解决方法/黑客

Uninsatll the product by the /x setupdll.msi /passive 
Install the new version

嗯,我知道这是非常具体的问题,所以我没有太多用处,但结合一些东西最终会得到奇怪的解决方案:(

无论如何,如果有人遇到同样的问题。

答案 1 :(得分:0)

您假设setup.exe引导程序也是一个通用工具,也可以修复已安装的产品,实际上并非如此。如果您尝试重新安装MSI文件,它将发送到修复模式,但修复不是重新安装。修复不会“替换所有文件”。它修复现有产品(由ProductCode定义)。

术语“强制重新安装”有点模糊,因为如果您指的是安装新版本的MSI,那么在构建新的MSI文件时使用RemovePreviousVersions;如果你想修复它,使用msiexec命令行用/ f加上你需要的任何其他选项。

我怀疑你真正拥有的是你的MSI文件的新版本及其内容,这意味着你需要增加你需要更新的文件的文件版本(VS 2008及更高版本),这可能是有用的:

https://www.simple-talk.com/dotnet/visual-studio/updates-to-setup-projects/