6

我的应用程序有一个 installshield 安装程序。现在我为应用程序创建了一个小升级,并且我的一些组件中的一些文件被更改了。不幸的是,在小升级后,文件并没有被替换,而是保留了它们的旧内容。这些是文本文件,因此很容易验证。我还在升级期间尝试覆盖的每个文件的属性中明确检查了始终覆盖。

我厌倦了创建自定义操作来执行 installshield 应该执行的操作。您知道为什么会发生这种情况吗?如何强制 installshield 覆盖这些文件?

我正在使用 installshield 2008,真的,真的,真的希望我可以选择改变它。

4

2 回答 2

1

不要粗鲁,但这是一个培训问题而不是工具问题。Windows Installer 是底层技术,它在组件规则文件版本控制规则方面的操作方式非常明确。如果它不起作用,那是因为您实施错误。如果您正在编写自定义操作来绕过它,这清楚地表明您不了解自己在做什么,并且正在创建黑客来规避 MSI。

现在我没有您的 FOO.msi (v1) 和 FOO.msi (v1.1) 或升级的安装程序日志的副本,因此您的问题无法回答,除了建议您研究诸如哪些组件、密钥文件等主题和配套文件是,文件成本计算/版本控制如何工作,主要和次要升级如何工作,然后将这些知识应用于您自己的安装程序。

是的,这是晦涩难懂的,通常是迂腐的东西。但它是 MSI 工作方式的核心,您确实需要了解它。一旦你这样做了,它就会变得容易得多。相信我,我去过那里。

于 2013-01-31T13:50:45.120 回答
0

我刚刚遇到了类似的问题。即使我更改了 AssemblyInfo.cs 中文件的版本,Install Shield LE 也没有选择新的编译文件。在构建解决方案之前,我似乎必须在“指定应用程序数据”中实际打开“文件”菜单。

于 2014-11-13T19:47:58.087 回答