0

シナリオInternet Explorer 10 プラグイン用の .dll ファイルを作成しました。regasm を使用して .dll を登録し、IE10 で正常に動作します。配布できるように .msi ファイルを開発したいと考えています。私はそれを開発している間、いくつかの問題を抱えています。インストール中に、dll ファイルをレジストリに登録する必要がありますが、単に .dll を登録するだけでうまくいく場合は、.msi ファイルがなくても、ファイルが登録されることはありません。この問題は、.dll ファイルが .msi ファイルにパッケージ化されている場合に発生します。Wix doc を確認しましたが、Heat ツールセットを使用することをお勧めします。以下は出力でした

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">


<Fragment>
    <DirectoryRef Id="TARGETDIR">
        <Directory Id="dirCFD54C07EFB094CAD317543172D62CC3" Name="bin" />
    </DirectoryRef>
</Fragment>
<Fragment>
    <DirectoryRef Id="dirCFD54C07EFB094CAD317543172D62CC3">
        <Component Id="cmpA742B1B0BA7235FA026C505929929E25" Guid="{A6A2DF10-0BC0-410d-    8582-79DA83A83F19}">
            <Class Id="{8A194578-81EA-4850-9911-13BA2D71EFBD}" Context="InprocServer32" Description="Greyhound.BHO.BHO" ThreadingModel="both" ForeignServer="mscoree.dll">
                <ProgId Id="Greyhound.BHO.BHO" Description="Greyhound.BHO.BHO" />
            </Class>
            <File Id="filB636C21F357A14C42DFD0FBC9300D2F4" KeyPath="yes" Source="SourceDir\bin\greyhound.dll" />
            <RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Value="" Type="string" Action="write" />
            <RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32\1.0.0.0" Name="Class" Value="Greyhound.BHO.BHO" Type="string" Action="write" />
            <RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32\1.0.0.0" Name="Assembly" Value="Greyhound, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Type="string" Action="write" />
            <RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32\1.0.0.0" Name="RuntimeVersion" Value="v4.0.30319" Type="string" Action="write" />
            <RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32\1.0.0.0" Name="CodeBase" Value="file:///[#filB636C21F357A14C42DFD0FBC9300D2F4]" Type="string" Action="write" />
            <RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32" Name="Class" Value="Greyhound.BHO.BHO" Type="string" Action="write" />
            <RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32" Name="Assembly" Value="Greyhound, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Type="string" Action="write" />
            <RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32" Name="RuntimeVersion" Value="v4.0.30319" Type="string" Action="write" />
            <RegistryValue Root="HKCR" Key="CLSID\{8A194578-81EA-4850-9911-13BA2D71EFBD}\InprocServer32" Name="CodeBase" Value="file:///[#filB636C21F357A14C42DFD0FBC9300D2F4]" Type="string" Action="write" />
            <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\{8a194578-81ea-4850-9911-13ba2d71efbd}" Name="Alright" Value="1" Type="integer" Action="write" />
        </Component>
    </DirectoryRef>
</Fragment>

この出力を .wxs ファイルのどこに含めるべきかについて混乱しています。上記のファイルを生成しても、.dll の登録の問題は依然として存在します。

誰かがそれに光を当てることができれば幸いです.ありがとう

4

1 に答える 1