1
我有一个基本问题,我不明白,我们使用HEAT消耗工件的目录,其中一部分是COM DLL。 作为装箱的WXS文件的一部分我看到,存在用于注册表类似的元件:WIX自动化和补丁行为一旦注册DLL被更改
<Component Id="cmpAE50B39B8817E1840F09193686006FFA" Guid="*"> <File Id="fil7BDB953AB6AAEC9E98E28F49D87BABA3" KeyPath="yes" Source="SourceDir\ucfDistribution.dll"> <TypeLib Id="{88B7EEC8-DF2B-11D4-A508-005004ED3088}" Description="ucfDistribution" HelpDirectory="dir83BF4093F80DD11BB416BF39954702C2" Language="0" MajorVersion="14" MinorVersion="13"> <Class Id="{3AA1580F-1DA2-44A5-B581-98D861C2A0CD}" Context="InprocServer32" Description="ucfDistribution.ucfCMAXMLClass" ThreadingModel="apartment" Version="14.13" Programmable="yes"> <ProgId Id="ucfDistribution.ucfCMAXMLClass" Description="ucfDistribution.ucfCMAXMLClass" /> </Class> <Interface Id="{A98DFC45-F161-442D-9A10-3CB3103B524F}" Name="ucfCMAXMLClass" ProxyStubClassId="{00020424-0000-0000-C000-000000000046}" ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" /> </TypeLib> </File> <RegistryValue Root="HKCR" Key="Interface\{D41A9260-ED8A-44BC-8700-08D3ADB20CFE}\Forward" Value="{A98DFC45-F161-442D-9A10-3CB3103B524F}" Type="string" Action="write" /> </Component>
比方说该补丁在文件被改变&登记以这样的方式改变该注册表的KEY改变(是最初Interface \ {D41A9260-ED8A-44BC-8700-08D3ADB20CFE} \ Forward)
修补程序中会发生什么情况将删除以前的注册表或将保持孤立状态。
我怀疑,既然组件键(文件)进行更新,这意味着该组件将安装和将离开前一个键(注册表) *我没有测试这个尚未
所以这意味着每个注册表项目都应该在它自己的组件中......现在我明白为什么没有公司使用MSP – 2010-08-09 07:21:49
注册表项很有趣。我通常建议将注册表项与他们在其中注册的文件(如COM注册)和注册表项相关联,这些注册表项与它们自己的组件中的任何内容都没有关联。较小的组件比较大的组件要好。 是的,修补是具有挑战性的。如果主要升级适合你,我建议。 :) – 2010-08-10 03:07:46