程序无法加载DLL' SQLite.Interop.dll'安装WiX后

时间:2017-09-21 09:27:33

标签: c# sqlite dll wix

我使用WiX捆绑MSI安装文件。安装完成后,我执行程序但得到以下错误。

  

无法加载DLL' SQLite.Interop.dll':找不到指定的模块。 (HRESULT异常:0x8007007E)

我尝试将两个引用:SQLite.Interop(x86和x64)添加到WiX项目中。但我明白了:

  

扩展程序' ... \ SQLite.Interop.dll'由于以下原因无法加载:无法加载文件或程序集' file://.../ x86 / SQLite.Interop.dll'或其中一个依赖项。该模块应该包含一个程序集清单。

这个错误是由WiX还是我自己的应用程序引起的?


更新

我尝试将SQLite.Interop.dll(x64)的引用添加到主项目中,但它会出现此错误。

  

对' V:\ Users ... \ bin \ Debug \ x64 \ SQLite.Interop.dll'的引用无法添加。请确保该文件是可访问的,并且它是有效的程序集或COM组件。


参考


1 个答案:

答案 0 :(得分:2)

Product.wxs文件中,添加以下内容:

<Directory Id="INSTALLFOLDER" Name="MyApp">
    <!-- ... -->
    <Directory Id="x86_dir" Name="x86" />
    <Directory Id="x64_dir" Name="x64" />
</Directory>


并添加以下内容:

<Fragment>
    <ComponentGroup Id="x86_files" Directory="x86">
        <Component Id="SQLite_x86.Interop.dll" Guid="{GUID}">
            <File Id="SQLite_x86.Interop.dll" Name="SQLite.Interop.dll" Source="$(var.MyApp_TargetDir)x86\SQLite.Interop.dll" />
        </Component>
    </ComponentGroup>
</Fragment>
<Fragment>
    <ComponentGroup Id="x64_files" Directory="x64">
        <Component Id="SQLite_x64.Interop.dll" Guid="{GUID}">
            <File Id="SQLite_x64.Interop.dll" Name="SQLite.Interop.dll" Source="$(var.MyApp_TargetDir)x64\SQLite.Interop.dll" />
        </Component>
    </ComponentGroup>
</Fragment>