问题
I have a directory with one file there: Iesi.Collections.dll.
When I run the following command:
heat.exe dir D:\MyDir -cg References -srd -o D:\Product.wxs -nologo -gg -g1 -dr INSTALLFOLDER
I got really strange output. May be it is strange only for me so please explain it to me. Why I get these registry values? I get the same result for any third party dll like MassTransit or RabbitMQ.
Expected output:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="INSTALLFOLDER" />
</Fragment>
<Fragment>
<ComponentGroup Id="References">
<Component Id="cmpAD8551805C0E384D4FD6CD718C5E8381" Directory="INSTALLFOLDER" Guid="4253B9B4-21E8-40C8-A71A-A8308BD96F3C">
<File Id="fil1300C7FBD2C9D42B5651E43A08F7DA1E" KeyPath="yes" Source="SourceDir\Iesi.Collections.dll" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
Current output:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="INSTALLFOLDER" />
</Fragment>
<Fragment>
<ComponentGroup Id="References">
<Component Id="cmpAD8551805C0E384D4FD6CD718C5E8381" Directory="INSTALLFOLDER" Guid="4253B9B4-21E8-40C8-A71A-A8308BD96F3C">
<Class Id="{0436B9AC-9C09-3DF4-B3E9-AA70B658FB39}" Context="InprocServer32" Description="Iesi.Collections.ListSet" ThreadingModel="both" ForeignServer="mscoree.dll">
<ProgId Id="Iesi.Collections.ListSet" Description="Iesi.Collections.ListSet" />
</Class>
<Class Id="{09A2D117-B7B7-3905-88A7-AB20EE344B9F}" Context="InprocServer32" Description="Iesi.Collections.HashedSet" ThreadingModel="both" ForeignServer="mscoree.dll">
<ProgId Id="Iesi.Collections.HashedSet" Description="Iesi.Collections.HashedSet" />
</Class>
<Class Id="{6B58196F-44FD-3EE1-BF83-AEBAABE958DA}" Context="InprocServer32" Description="Iesi.Collections.HybridSet" ThreadingModel="both" ForeignServer="mscoree.dll">
<ProgId Id="Iesi.Collections.HybridSet" Description="Iesi.Collections.HybridSet" />
</Class>
<Class Id="{DD9A864F-8AA2-3DF8-880B-6D38E581E44A}" Context="InprocServer32" Description="Iesi.Collections.SortedSet" ThreadingModel="both" ForeignServer="mscoree.dll">
<ProgId Id="Iesi.Collections.SortedSet" Description="Iesi.Collections.SortedSet" />
</Class>
<File Id="fil1300C7FBD2C9D42B5651E43A08F7DA1E" KeyPath="yes" Source="SourceDir\Iesi.Collections.dll" />
<RegistryValue Root="HKCR" Key="CLSID\{0436B9AC-9C09-3DF4-B3E9-AA70B658FB39}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Value="" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{0436B9AC-9C09-3DF4-B3E9-AA70B658FB39}\InprocServer32\1.0.1.0" Name="Class" Value="Iesi.Collections.ListSet" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{0436B9AC-9C09-3DF4-B3E9-AA70B658FB39}\InprocServer32\1.0.1.0" Name="Assembly" Value="Iesi.Collections, Version=1.0.1.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{0436B9AC-9C09-3DF4-B3E9-AA70B658FB39}\InprocServer32\1.0.1.0" Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{0436B9AC-9C09-3DF4-B3E9-AA70B658FB39}\InprocServer32\1.0.1.0" Name="CodeBase" Value="file:///[#fil1300C7FBD2C9D42B5651E43A08F7DA1E]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{0436B9AC-9C09-3DF4-B3E9-AA70B658FB39}\InprocServer32" Name="Class" Value="Iesi.Collections.ListSet" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{0436B9AC-9C09-3DF4-B3E9-AA70B658FB39}\InprocServer32" Name="Assembly" Value="Iesi.Collections, Version=1.0.1.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{0436B9AC-9C09-3DF4-B3E9-AA70B658FB39}\InprocServer32" Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{0436B9AC-9C09-3DF4-B3E9-AA70B658FB39}\InprocServer32" Name="CodeBase" Value="file:///[#fil1300C7FBD2C9D42B5651E43A08F7DA1E]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{09A2D117-B7B7-3905-88A7-AB20EE344B9F}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Value="" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{09A2D117-B7B7-3905-88A7-AB20EE344B9F}\InprocServer32\1.0.1.0" Name="Class" Value="Iesi.Collections.HashedSet" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{09A2D117-B7B7-3905-88A7-AB20EE344B9F}\InprocServer32\1.0.1.0" Name="Assembly" Value="Iesi.Collections, Version=1.0.1.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{09A2D117-B7B7-3905-88A7-AB20EE344B9F}\InprocServer32\1.0.1.0" Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{09A2D117-B7B7-3905-88A7-AB20EE344B9F}\InprocServer32\1.0.1.0" Name="CodeBase" Value="file:///[#fil1300C7FBD2C9D42B5651E43A08F7DA1E]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{09A2D117-B7B7-3905-88A7-AB20EE344B9F}\InprocServer32" Name="Class" Value="Iesi.Collections.HashedSet" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{09A2D117-B7B7-3905-88A7-AB20EE344B9F}\InprocServer32" Name="Assembly" Value="Iesi.Collections, Version=1.0.1.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{09A2D117-B7B7-3905-88A7-AB20EE344B9F}\InprocServer32" Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{09A2D117-B7B7-3905-88A7-AB20EE344B9F}\InprocServer32" Name="CodeBase" Value="file:///[#fil1300C7FBD2C9D42B5651E43A08F7DA1E]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{6B58196F-44FD-3EE1-BF83-AEBAABE958DA}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Value="" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{6B58196F-44FD-3EE1-BF83-AEBAABE958DA}\InprocServer32\1.0.1.0" Name="Class" Value="Iesi.Collections.HybridSet" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{6B58196F-44FD-3EE1-BF83-AEBAABE958DA}\InprocServer32\1.0.1.0" Name="Assembly" Value="Iesi.Collections, Version=1.0.1.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{6B58196F-44FD-3EE1-BF83-AEBAABE958DA}\InprocServer32\1.0.1.0" Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{6B58196F-44FD-3EE1-BF83-AEBAABE958DA}\InprocServer32\1.0.1.0" Name="CodeBase" Value="file:///[#fil1300C7FBD2C9D42B5651E43A08F7DA1E]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{6B58196F-44FD-3EE1-BF83-AEBAABE958DA}\InprocServer32" Name="Class" Value="Iesi.Collections.HybridSet" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{6B58196F-44FD-3EE1-BF83-AEBAABE958DA}\InprocServer32" Name="Assembly" Value="Iesi.Collections, Version=1.0.1.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{6B58196F-44FD-3EE1-BF83-AEBAABE958DA}\InprocServer32" Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{6B58196F-44FD-3EE1-BF83-AEBAABE958DA}\InprocServer32" Name="CodeBase" Value="file:///[#fil1300C7FBD2C9D42B5651E43A08F7DA1E]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{DD9A864F-8AA2-3DF8-880B-6D38E581E44A}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Value="" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{DD9A864F-8AA2-3DF8-880B-6D38E581E44A}\InprocServer32\1.0.1.0" Name="Class" Value="Iesi.Collections.SortedSet" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{DD9A864F-8AA2-3DF8-880B-6D38E581E44A}\InprocServer32\1.0.1.0" Name="Assembly" Value="Iesi.Collections, Version=1.0.1.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{DD9A864F-8AA2-3DF8-880B-6D38E581E44A}\InprocServer32\1.0.1.0" Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{DD9A864F-8AA2-3DF8-880B-6D38E581E44A}\InprocServer32\1.0.1.0" Name="CodeBase" Value="file:///[#fil1300C7FBD2C9D42B5651E43A08F7DA1E]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{DD9A864F-8AA2-3DF8-880B-6D38E581E44A}\InprocServer32" Name="Class" Value="Iesi.Collections.SortedSet" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{DD9A864F-8AA2-3DF8-880B-6D38E581E44A}\InprocServer32" Name="Assembly" Value="Iesi.Collections, Version=1.0.1.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{DD9A864F-8AA2-3DF8-880B-6D38E581E44A}\InprocServer32" Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{DD9A864F-8AA2-3DF8-880B-6D38E581E44A}\InprocServer32" Name="CodeBase" Value="file:///[#fil1300C7FBD2C9D42B5651E43A08F7DA1E]" Type="string" Action="write" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
EDIT: Possible duplicate: How to avoid unnecessary tags when use Heat in wix
回答1:
You should supply heat.exe
with -sreg
(suppress registry harvesting) and -scom
(suppress COM elements harvesting) command line switches. See heat.exe -?
for more options.
来源:https://stackoverflow.com/questions/18982426/wix-heat-exe-strange-output