我已经google了很多,我找不到答案。那么在一个 Windows Installer 属性值中可以存储多少个字符。如果你给出答案,你能提供答案的来源吗?
5 回答
我问 Windows Installer 团队,在将数据从即时的 CustomAction 编组到延迟的 CustomAction 时,Property 可以有多大,我被告知我只是受到机器上内存量的限制。
属性名称的长度可以是 72 个字符,并且对属性值的大小没有限制。
我通过使用 InstallShield 编辑我的 MSI 并检查属性表的字段大小来得到这个。(导出表格给出以下标题>
Property Value ISComments
s72 L0 S255
MSI 只是一个数据库,属性存储在Property
由两列组成的表中;Property
和Value
该Value
列属于Text
根据 MSI.CHM 未验证的类型。按照这种逻辑,属性中的字符数没有限制。我希望您可以用字节或千字节(或更大)而不是字符来考虑它。
MSDN 文档对此不是很清楚,但确实提供了一些提示。例如,本文提到可以将属性值写入注册表,这意味着注册表值限制适用:http: //msdn.microsoft.com/en-us/library/aa372432%28VS.85%29.aspx
这是一篇详细介绍注册表值限制的文章:http: //support.microsoft.com/kb/256986
因此,我最多会使用注册表值限制作为指导(并且仍然尽量保持低于该值)。
如果您正在编写 InstallScript,请注意,虽然 MSI 属性可以设置为任意长度,但有一个技巧可以获取“长”值。参考:字符串太长,MsiGetProperty 和 Installshield Installscript