Setup Project不替换程序集文件

LR-*_*-TI 8 installation installer windows-installer

  1. 我有一个Windows应用程序项目(A.exe)调用另一个项目类库(B.dll).

  2. A.exe有一个按钮(myButton),它从B.dll调用方法Method1.

  3. 为了安装应用程序,我创建了一个安装项目ASetup.vdproj,其主要输出是项目A.

  4. 编译完设置后,安装运行没有任何问题,当A.exe启动并单击myButton时,aplication不会出错.

  5. 然后我改变了B.dll并添加了一个新方法Method2.

  6. myButton现在从B.dll而不是Method1调用Method2.

  7. 我增加了A.exe的版本并增加了ASetup.vdproj的版本,但是没有增加B.dll的版本.

  8. 安装应用程序后,我注意到我在控制面板中安装了两个A.exe - >添加/删除程序.

  9. 运行A.exe并单击myButton时,我得到一个错误,"方法2在B.dll中找不到",这意味着安装过程中安装程序不会替换B.dll.

  10. 我运行卸载,我注意到文件没有从磁盘中删除.

我的问题是:

为什么第二次安装没有更新B.dll?如果B.dll的版本增加,则B.dll将在安装期间被替换,但问题是我的当前项目有许多外部程序集,如果它们已被修改则难以控制.基本上,我想要的是每个安装中都替换所有的汇编文件.

我等待你们所有人的反馈.感谢您的关注.

Chr*_*ter 6

"添加/删除程序"中的2个条目告诉我您更改了ProductCode属性,但在升级表中没有有效行来正确定义主要升级.MSI将此视为两种恰好安装在同一目录中的不同产品.卸载其中一个产品时,文件将保留,直到您卸载其他产品为止.

未被覆盖的DLL告诉我您没有将AssemblyFileVersion属性从一个构建更改为另一个构建.第一个安装在1.0.0.0中复制,第二个安装说"1.0.0.0已经存在,这里没什么可做的"并且跳过它.