Wix\heat.exe 奇怪的输出

标签 wix heat

我有一个包含一个文件的目录:Iesi.Collections.dll。

当我运行以下命令时:

heat.exe dir D:\MyDir -cg References -srd -o D:\Product.wxs -nologo -gg -g1 -dr INSTALLFOLDER

我得到了非常奇怪的输出。可能只是我觉得奇怪,所以请向我解释。为什么我会得到这些注册表值?对于任何第三方 dll,如 MassTransit 或 RabbitMQ,我都得到相同的结果。

预期输出:
<?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>

当前输出:
<?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>

编辑:可能重复:How to avoid unnecessary tags when use Heat in wix

最佳答案

您应该提供heat.exe-sreg (禁止注册表收集)和 -scom (抑制 COM 元素收集)命令行开关。见 heat.exe -?更多选择。

关于Wix\heat.exe 奇怪的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18982426/

相关文章:

.net - Wix 安装程序和 XSLT - 省略特定目录中的某些文件

com - 在 WXS 中,如何引用通过不同组件安装的文件?

wix - 是否可以创建 wix msi 来解压存档 (zip)?

c# - 使用 HeatDirectory 从 wix 中的多个目录中收集文件

用于散热的 Python numpy 矢量化

r - 如何在R中的热图中放置黑色边框

wix - 在我的 Product.wxs 中引用另一个 .wxs 文件

powershell - 从 WiX 安装程序运行 PowerShell 脚本

WIX 目录搜索总是失败

Wix 自定义对话框