使用安装程序软件开发工具包在MSI中重命名程序集

时间:2011-05-23 10:42:28

标签: sql assemblies windows-installer

我有一个遗留项目,他们有一大堆visual studio安装项目,可以为不同版本的第三方应用程序创建相同插件的安装包。

我正在试图弄清楚如何构建设置项目以便它们起作用。

提取以前编译的MSI的内容以及构建项目时获得的内容,MSI中的Global Assembly Cache文件夹中的程序集与另一个不同。另一个MSI后缀附加到程序集的名称。

作为MSI编译过程的一部分,他们显然使用The SQL query strings for Windows Installer在编译的MSI包中重命名程序集。

我有脚本并且针对我的MSI运行它不会重命名汇编文件,就像我提取MSI内容时所看到的那样。

我认为应该重命名程序集的SQL语句具有以下形式:

update MsiAssemblyName set Value = 'AssemblyNameSuffix' where Value = 'AssemblyName'

运行脚本确实以某种方式更改了MSI,但我没有看到重命名的汇编文件。

问题是,是否可以用这种方式用SQL重命名MSI中的汇编文件,如果可以,那么如何实现呢?

谢谢!

1 个答案:

答案 0 :(得分:1)

不,这是不可能的。即使您更新了File表以获得新文件名,组件也会被破坏,因为.NET Assemblies中包含描述其程序集名称,命名空间和类的元数据。重命名文件会破坏它。