如果你有.net桌面应用程序的内置MSI,其中包含许多静态内容'以文档和图像的形式,是否可以在不重建安装程序的情况下更新静态内容?
我找到了一个可以在安装程序中进行戳的工具 - 但它似乎是只读的
http://lessmsi.activescott.com/
鉴于我们可以访问项目的源代码 - 是否可以使用某种外部引用文件夹设置安装程序,以便更轻松地实现这一目标?
理想情况下,我希望有一个用户可以下载的文件,其中包含核心代码版本和当前参考文件 - 但由于文件经常更改,我不想加入创建每次他们改变时都会有新的构建。
我并不热衷于维护客户端应用程序的更新Web服务来更新服务器的引用(尽管如果编辑MSI文件太复杂,这是另一种选择)。
对此方案的任何想法或最佳做法表示赞赏,
干杯,
-Kaine -
答案 0 :(得分:2)
答案 1 :(得分:0)
理论上你可以用Orca做到这一点,但实际上有很多事情可能会出错,这可能是不值得的。就像几个例子。如果你更改了一个版本化的文件,你需要记住去更改File表中的Version,如果你关心它的大小都是正确的,那么它也是大小,如果它是托管代码,那么进入MsiAssemblyName表来制作那些价值正确。如果更改数据文件,则需要进入MsiFileHash表以添加新文件的实际文件哈希。如果您确定您或其他人可以在替换文件时正确修改所有必需的MSI内容,那么祝您好运 - 实际上,您将通过手动更改其内容并在所有内容中摆弄来实现MSI的手动构建文件更改时需要更改的MSI文件中的位置。何必?您可能认为Windows Installer只是一个不关心文件内容的哑文件复制器,但这是不正确的。